-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Extends the threads package with a bounded thread group -- -- Extends the threads package with a bounded thread group with the same -- interface as the original thread group. @package threads-extras @version 0.1.0.2 -- | This module wraps Control.Concurrent.Thread.Group and provides a -- bounded version of ThreadGroup, mainly BoundedThreadGroup. -- -- In addition to the functionality of ThreadGroup, -- BoundedThreadGroup will block creation of threads until there -- fewer than the given max size. module Control.Concurrent.Thread.BoundedThreadGroup -- | A BoundedThreadGroup extends the concept of a -- ThreadGroup by restricting the number of active threads to a -- given max size. If one attempts to create more than the max size -- number of threads the fork function will block until threads finish. data BoundedThreadGroup BoundedThreadGroup :: Int -> ThreadGroup -> BoundedThreadGroup [maxSize] :: BoundedThreadGroup -> Int [threadGroup] :: BoundedThreadGroup -> ThreadGroup -- | Create a new BoundedThreadGroup with the passed in max size new :: Int -> IO BoundedThreadGroup -- | Same as Control.Concurrent.Thread.Group.nrOfRunning nrOfRunning :: BoundedThreadGroup -> STM Int -- | Same as Control.Concurrent.Thread.Group.wait wait :: BoundedThreadGroup -> IO () -- | Same as Control.Concurrent.Thread.Group.waitN waitN :: Int -> BoundedThreadGroup -> IO () -- | Same as Control.Concurrent.Thread.Group.forkIO but waits there are -- less then the max size number of threads. forkIO :: BoundedThreadGroup -> IO a -> IO (ThreadId, IO (Result a)) -- | Same as Control.Concurrent.Thread.Group.forkOS but waits there are -- less then the max size number of threads. forkOS :: BoundedThreadGroup -> IO a -> IO (ThreadId, IO (Result a)) -- | Same as Control.Concurrent.Thread.Group.forkOn but waits there are -- less then the max size number of threads. forkOn :: Int -> BoundedThreadGroup -> IO a -> IO (ThreadId, IO (Result a)) -- | Same as Control.Concurrent.Thread.Group.forkIOWithUnmask but waits -- there are less then the max size number of threads. forkIOWithUnmask :: BoundedThreadGroup -> ((forall b. IO b -> IO b) -> IO a) -> IO (ThreadId, IO (Result a)) -- | Same as Control.Concurrent.Thread.Group.forkOnWithUnmask but waits -- there are less then the max size number of threads. forkOnWithUnmask :: Int -> BoundedThreadGroup -> ((forall b. IO b -> IO b) -> IO a) -> IO (ThreadId, IO (Result a))