restricted-workers 0.1.0 → 0.1.1
raw patch · 3 files changed
+17/−8 lines, 3 files
Files
- examples/CommandEvalProtocol.lhs +14/−5
- restricted-workers.cabal +1/−1
- src/System/Restricted/Worker/Internal.hs +2/−2
examples/CommandEvalProtocol.lhs view
@@ -83,12 +83,21 @@ > main :: IO () > main = do > hSetBuffering stdin NoBuffering-> (worker,_) <- startIOWorker "Command Evaluator" def+> bzz <- startIOWorker "Command Evaluator" def > "/tmp/commandme.sock" cmdHandler-> sendCommands worker [Dance, Dance, AddNumbers 1 2, Echo "Hi", Dance]-> threadDelay 80000-> killWorker worker-> return ()+> go bzz+> where+> go (worker, restart) = do+> sendCommands worker [ Dance, Dance+> , AddNumbers 1 2+> , Echo "Hi", Echo "wow"+> , Dance, Dance ]+> threadDelay 800000+> worker' <- restart worker+> go (worker', restart)+> return ()++ Sample output:
restricted-workers.cabal view
@@ -1,6 +1,6 @@ name: restricted-workers synopsis: Running worker processes under system resource restrictions-version: 0.1.0+version: 0.1.1 description: This library provides an abstract interface for running various kinds of workers under resource
src/System/Restricted/Worker/Internal.hs view
@@ -61,11 +61,11 @@ -> Maybe (IO Handle) -- ^ Where to redirect stdout -> (Socket -> IO ()) -- ^ Callback funcion -> IO ProcessID-forkWorker (w@Worker{..}) out cb = do+forkWorker Worker{..} out cb = do _ <- setStoppedChildFlag True _ <- installHandler processStatusChanged Ignore Nothing soc <- mkSock workerSocket- addFinalizer w (close soc)+ addFinalizer soc (close soc) forkProcess $ do _ <- setStoppedChildFlag False _ <- installHandler processStatusChanged Default Nothing