Safe Haskell | None |
---|
A scheduler for the Par monad based on directly performing IO actions when Par methods are called (i.e. without using a lazy trace data structure).
- data Sched = Sched {}
- data Par a
- newtype IVar a = IVar (IORef (IVarContents a))
- data IVarContents a
- runPar :: Par a -> a
- runParIO :: Par a -> IO a
- new :: Par (IVar a)
- get :: IVar a -> Par a
- put_ :: IVar a -> a -> Par ()
- fork :: Par () -> Par ()
- newFull :: NFData a => a -> Par (IVar a)
- newFull_ :: a -> Par (IVar a)
- put :: NFData a => IVar a -> a -> Par ()
- spawn :: NFData a => Par a -> Par (IVar a)
- spawn_ :: Par a -> Par (IVar a)
- spawnP :: NFData a => a -> Par (IVar a)
- spawn1_ :: (a -> Par b) -> a -> Par (IVar b)
Documentation
IVar (IORef (IVarContents a)) |
read the value in a IVar
. The get
can only return when the
value has been written by a prior or parallel put
to the same
IVar
.