unix-process-conduit 0.2.1.1 → 0.2.1.2
raw patch · 2 files changed
+12/−8 lines, 2 files
Files
Data/Conduit/Process/Unix.hs view
@@ -38,8 +38,10 @@ import Control.Arrow ((***)) import Control.Concurrent (forkIO) import Control.Concurrent (threadDelay)-import Control.Concurrent.MVar (MVar, modifyMVar, newMVar,- readMVar, swapMVar)+import Control.Concurrent.MVar (MVar, modifyMVar,+ newEmptyMVar, newMVar,+ putMVar, readMVar, swapMVar,+ takeMVar) import Control.Exception (Exception, SomeException, bracketOnError, finally, handle, mask, mask_,@@ -230,7 +232,7 @@ -- child process. -- -- Since 0.2.1-data TrackedProcess = TrackedProcess !ProcessTracker !(IORef MaybePid)+data TrackedProcess = TrackedProcess !ProcessTracker !(IORef MaybePid) !(IO ()) data MaybePid = NoPid | Pid !CPid @@ -268,11 +270,13 @@ c_track_process pt pid 1 return $ Pid pid ipid <- newIORef mpid'- let tp = TrackedProcess pt ipid+ baton <- newEmptyMVar+ let tp = TrackedProcess pt ipid (takeMVar baton) case mpid' of NoPid -> return () Pid _ -> void $ forkIO $ do void $ waitForProcess ph+ putMVar baton () untrackProcess tp return $! tp @@ -281,7 +285,7 @@ -- -- Since 0.2.1 untrackProcess :: TrackedProcess -> IO ()-untrackProcess (TrackedProcess pt ipid) = mask_ $ do+untrackProcess (TrackedProcess pt ipid _) = mask_ $ do mpid <- readIORef ipid case mpid of NoPid -> return ()@@ -398,8 +402,8 @@ Right pid -> do log $ "Process created: " `S8.append` exec return (Running pid, do- void $ trackProcess processTracker pid- void $ waitForProcess pid+ TrackedProcess _ _ wait <- trackProcess processTracker pid+ wait loop (Just now)) next forkIO $ loop Nothing
unix-process-conduit.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: unix-process-conduit-version: 0.2.1.1+version: 0.2.1.2 synopsis: Run processes on Unix systems, with a conduit interface description: This library allows you to provide @conduit@ datatypes for the input and output streams. Note that you must compile your programs with @-threaded@. homepage: https://github.com/snoyberg/conduit