Running processes concurrently
From HaskellWiki
(Difference between revisions)
m (categorize) |
|||
| Line 1: | Line 1: | ||
| + | [[Category:How to]] [[Category:Code]] | ||
This example forks many processes in parallel, then waits for each process to exit. Finally, it prints the number of failures. | This example forks many processes in parallel, then waits for each process to exit. Finally, it prints the number of failures. | ||
Current revision
This example forks many processes in parallel, then waits for each process to exit. Finally, it prints the number of failures.
import System.Process import Control.Concurrent import System.Exit main = do let cmds = replicate 100 "sleep 10s" ps <- mapM runCommand cmds es <- mapM waitForProcess ps case length . filter (/= ExitSuccess) $ es of 0 -> putStrLn "All commands ran successfully." n -> putStrLn ("There were " ++ show n ++ " failures.")
Categories: How to | Code
