This project is mirrored from https://github.com/haskell/process. Pull mirroring updated .
  1. 25 Nov, 2014 1 commit
  2. 24 Nov, 2014 1 commit
  3. 14 Nov, 2014 2 commits
  4. 13 Nov, 2014 1 commit
  5. 01 Nov, 2014 8 commits
  6. 27 Sep, 2014 1 commit
  7. 09 Sep, 2014 1 commit
  8. 25 Aug, 2014 1 commit
  9. 11 Aug, 2014 1 commit
  10. 02 Aug, 2014 1 commit
  11. 26 Jun, 2014 1 commit
  12. 30 Mar, 2014 2 commits
    • tibbe's avatar
      Clean up import and export lists · b39e340b
      tibbe authored
      Imports are now sorted alphabetically and shared imports come before
      compiler/OS specific ones.
      
      Import lists now use consistent indentation.
      
      Nested CPP if statements are now indented so it's possible to match up
      the ifs with the ends.
      b39e340b
    • tibbe's avatar
      Remove support for Hugs · 5fe18cb9
      tibbe authored
      5fe18cb9
  13. 13 Jan, 2014 1 commit
  14. 01 Dec, 2013 3 commits
  15. 30 Nov, 2013 1 commit
  16. 29 Nov, 2013 3 commits
    • Duncan Coutts's avatar
      Be even more careful with the threads that consume output (#2233) · d95a6701
      Duncan Coutts authored
      There is a potential deadlock with withCreateProcess in the case that
      there's an exception: cleanupProcess will try to hClose the various
      handles, but if another thread holds the Handle lock then that hClose
      will block.
      
      Takano Akio fixed the main case of this (in patch
      32223a9a
      
      ) by terminating the process
      (before closing the handles) This works because terminating the process
      will eventually cause those other threads to finish and release the
      Handle lock, so we can hClose.
      
      However on Unix terminateProcess is not guaranteed to terminate the
      process since it uses SIGTERM, which can be handled or ignored. So we
      have to separately guarantee that the handles can be hClosed, and the
      simplest way to do this is to ensure that the thread reading from the
      handles get killed in the case there's an exception.
      
      So we change forkWait to withForkWait that will kill off the thread if
      the body gets an exception.
      Authored-by: Duncan Coutts's avatarDuncan Coutts <duncan@well-typed.com>
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      d95a6701
    • Duncan Coutts's avatar
      Improve the code for ignoring EPIPE (#2233) · 79ae975a
      Duncan Coutts authored
      
      
      Factor it out into an ignoreSigPipe util, and use it in both
      readProcess and readProcessWithExitCode.
      Authored-by: Duncan Coutts's avatarDuncan Coutts <duncan@well-typed.com>
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      79ae975a
    • Duncan Coutts's avatar
      All new sync process functions now terminate on an exception (#2233) · b6012094
      Duncan Coutts authored
      
      
      Now all the functions that call a process synchronously have the same
      behaviour. Previously just readProcess, readProcessWithExitCode did
      this, now callProcess and callCommand do too.
      
      If a thread running one of these functions gets an exception, including
      async exceptions (such as from timeout or killThread), then the
      external process gets terminated.
      
      Introduce a helper function to implement this behaviour. Currently it
      is not exposed to users, but that could be changed easily.
      Authored-by: Duncan Coutts's avatarDuncan Coutts <duncan@well-typed.com>
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      b6012094
  17. 21 Nov, 2013 2 commits
  18. 20 Nov, 2013 9 commits