Commit b5ee9088 authored by Committed by Simon MarlowBrowse files
Fixed asynchronous exception bugs in readProcess and readProcessWithExitCode...
Fixed asynchronous exception bugs in readProcess and readProcessWithExitCode This patch fixes the following two bugs: 1) If an asynchronous exception was thrown to the thread executing readProcess 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. 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.