expose cleanupProcess
authorSridhar Ratnakumar <srid@srid.ca>
Thu, 17 May 2018 18:53:17 +0000 (14:53 -0400)
committerSridhar Ratnakumar <srid@srid.ca>
Fri, 18 May 2018 18:38:38 +0000 (14:38 -0400)
Required when writing our own withCreateProcess (with MonadIO, etc.)

System/Process.hs

index e1e3465..1ac454c 100644 (file)
@@ -43,6 +43,7 @@ module System.Process (
     readCreateProcessWithExitCode,
     readProcessWithExitCode,
     withCreateProcess,
+    cleanupProcess,
 
     -- ** Related utilities
     showCommandForUser,
@@ -245,7 +246,10 @@ withCreateProcess_ fun c action =
     C.bracketOnError (createProcess_ fun c) cleanupProcess
                      (\(m_in, m_out, m_err, ph) -> action m_in m_out m_err ph)
 
-
+-- | Cleans up the process.
+-- 
+-- This function is meant to be invoked from any application level cleanup 
+-- handler. It terminates the process, and closes any 'CreatePipe' 'handle's.
 cleanupProcess :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
                -> IO ()
 cleanupProcess (mb_stdin, mb_stdout, mb_stderr,