#5766: Asynchronous exception bugs in readProcess and readProcessWithExitCode
------------------------------+---------------------------------------------
 Reporter:  basvandijk        |          Owner:                   
     Type:  bug               |         Status:  new              
 Priority:  normal            |      Component:  libraries/process
  Version:  7.2.2             |       Keywords:                   
       Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple 
  Failure:  None/Unknown      |       Testcase:                   
Blockedby:                    |       Blocking:                   
  Related:                    |  
------------------------------+---------------------------------------------
 As [http://www.haskell.org/pipermail/libraries/2012-January/017406.html
 explained] on the libraries list, I fixed two asynchronous exception bugs
 in `readProcess` and
 `readProcessWithExitCode`:

 1) If an asynchronous exception was thrown to the thread executing
 `readProcess`/`readProcessWithExitCode` somewhere after `createProcess`
 was executed, the standard handles would not be closed anymore resulting
 in a "handle leak" so to speak.

 This is fixed by catching exceptions in the IO processing code and
 closing the standard handles when an exception occurs. Additionally, I
 also terminate the process and wait for its termination. Does the
 latter make sense?

 2) If an asynchronous exception was thrown to the stdout/stderr-read-
 thread it did not execute the `putMVar` anymore resulting in a dead-lock
 when `takeMVar` was executed.

 This is fixed by properly catching exception in the read-thread and
 propagating them to the parent thread which will then handle them as
 described above.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5766>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to