1. 05 Feb, 2020 1 commit
    • Tamar Christina's avatar
      SysTools: Use "process job" when spawning processes on Windows · 463b9b86
      Tamar Christina authored and Ben Gamari's avatar Ben Gamari committed
      GHC should make calls using process jobs when calling out to GCC and LD.
      The reason is these use the exec () family of posix functions.  Window's
      process model doesn't allow replacement of processes so this is emulated
      by creating a new process and immediately exiting the old one.  Because
      of this when using normal Windows wait functions you would return even
      without the child process having finished.  In this case if you are
      depending on data from the child you will enter a race condition.
      
      The usual fix for this is to use process jobs and wait for the
      termination of all children that have ever been spawn by the process you
      called. But also waiting for the freeing of all resources.
      463b9b86
  2. 04 Nov, 2019 1 commit
  3. 15 Mar, 2019 1 commit
  4. 10 Oct, 2017 1 commit
    • Tamar Christina's avatar
      Split SysTools up some · e51e565d
      Tamar Christina authored
      Summary:
      SysTools and DriverTools have an annoying mutual dependency.
      They also each contain pieces of the linker. In order for
      changes to be shared between the library and the exe linking
      code this dependency needs to be broken in order to avoid
      using hs-boot files.
      
      Reviewers: austin, bgamari, erikd
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4071
      e51e565d