úÎ Þ ¯Self-resetting barrier.  blocks until a specified E number of threads have reached it, and then they are all allowed to 3 run. The barrier is then reset so that a further count threads % can block on it. Typical usage is:  do b <- barrier 3 + forkIO $ b >> putStrLn "1" -- blocked + forkIO $ b >> putStrLn "2" -- blocked 9 forkIO $ b >> putStrLn "3" -- all three threads run <count - number of threads required before barrier is opened 'Latching barrier. This is the same as , except once the A barrier has opened (the requisite number of threads has reached ? it), it remains open, allowing all subsequent threads through  unblocked. <count - number of threads required before barrier is opened concurrent-barrier-0.1Control.Concurrent.Barrierbarrier latchBarrierbarrier'