Skip to content
  • basvandijk's avatar
    Fixed asynchronous exception bugs in readProcess and readProcessWithExitCode... · b5ee9088
    basvandijk authored and Simon Marlow's avatar Simon Marlow committed
    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.
    b5ee9088