Metered concurrency: Difference between revisions
→{{header|Haskell}}: Specified imports, applied Ormolu, swapped print for putStrLn
m (→{{header|J}}) |
(→{{header|Haskell}}: Specified imports, applied Ormolu, swapped print for putStrLn) |
||
Line 910:
<lang Haskell>import Control.Concurrent
( newQSem,
import Control.Monad▼
signalQSem,
waitQSem,
threadDelay,
forkIO,
newEmptyMVar,
putMVar,
takeMVar,
QSem,
MVar )
▲import Control.Monad ( replicateM_ )
worker :: QSem -> MVar String -> Int -> IO ()
worker q m n = do
main :: IO ()
main = do
==Icon and {{header|Unicon}}==
|