| Safe Haskell | None | 
|---|---|
| Language | Haskell98 | 
Control.Monad.Par.Scheds.Direct
Contents
Description
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).
Synopsis
- 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)
 - fixPar :: (a -> Par a) -> Par a
 - data FixParException = FixParException
 
Documentation
Constructors
| Sched | |
Instances
| Monad Par Source # | |
| Functor Par Source # | |
| MonadFix Par Source # | |
Defined in Control.Monad.Par.Scheds.DirectInternal  | |
| Applicative Par Source # | |
| MonadCont Par Source # | |
| ParUnsafe IVar Par Source # | |
Defined in Control.Monad.Par.Scheds.Direct Methods unsafePeek :: IVar a -> Par (Maybe a) # unsafeTryPut :: IVar a -> a -> Par a # unsafeParIO :: IO a -> Par a #  | |
| ParFuture IVar Par Source # | |
| ParIVar IVar Par Source # | |
| MonadReader Sched Par Source # | |
Constructors
| IVar (IORef (IVarContents a)) | 
Instances
| ParUnsafe IVar Par Source # | |
Defined in Control.Monad.Par.Scheds.Direct Methods unsafePeek :: IVar a -> Par (Maybe a) # unsafeTryPut :: IVar a -> a -> Par a # unsafeParIO :: IO a -> Par a #  | |
| ParFuture IVar Par Source # | |
| ParIVar IVar Par Source # | |
| NFData (IVar a) Source # | |
Defined in Control.Monad.Par.Scheds.Direct  | |
get :: IVar a -> Par a Source #
Read the value in an IVar.  The get operation can only return when the
 value has been written by a prior or parallel put to the same
 IVar.
put_ :: IVar a -> a -> Par () Source #
put_ is a version of put that is head-strict rather than fully-strict.
   In this scheduler, puts immediately execute woken work in the current thread.
fixPar :: (a -> Par a) -> Par a Source #
Take the monadic fixpoint of a Par computation. This is
 the definition of mfix for Par. Throws FixParException
 if the result is demanded strictly within the computation.
data FixParException Source #
Constructors
| FixParException | 
Instances
| Show FixParException Source # | |
Defined in Control.Monad.Par.Scheds.DirectInternal Methods showsPrec :: Int -> FixParException -> ShowS # show :: FixParException -> String # showList :: [FixParException] -> ShowS #  | |
| Exception FixParException Source # | |
Defined in Control.Monad.Par.Scheds.DirectInternal Methods toException :: FixParException -> SomeException #  | |