-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Simple thread management
--
-- A simple thread management API inspired by the one in chapter 24 of
-- Real World Haskell.
--
-- See
-- http://book.realworldhaskell.org/read/concurrent-and-multicore-programming.html.
@package threadmanager
@version 0.1.4
-- | A simple thread management API inspired by the one in chapter 24 of
-- Real World Haskell.
--
-- See
-- http://book.realworldhaskell.org/read/concurrent-and-multicore-programming.html.
--
-- Intended to be imported qualified (suggestion: TM).
module Control.Concurrent.ThreadManager
data ThreadManager
data ThreadStatus
Running :: ThreadStatus
Finished :: ThreadStatus
Threw :: SomeException -> ThreadStatus
-- | Make a thread manager.
make :: IO ThreadManager
-- | Make a managed thread. Uses forkIO.
fork :: ThreadManager -> IO () -> IO ThreadId
-- | Make the given number of managed threads.
forkn :: ThreadManager -> Int -> IO () -> IO [ThreadId]
-- | Get the status of a managed thread.
getStatus :: ThreadManager -> ThreadId -> IO (Maybe ThreadStatus)
-- | Block until a specific managed thread terminates.
waitFor :: ThreadManager -> ThreadId -> IO (Maybe ThreadStatus)
-- | Block until all managed threads terminate.
waitForAll :: ThreadManager -> IO ()
instance Show ThreadStatus
instance Eq ThreadManager