ivar-simple-0.2: Write once concurrency primitives.
IVars are write-once variables.
Similarily to MVars, IVars can be either empty or filled. Once filled,
they keep their value indefinitely - they are immutable.
Reading from an empty IVar will block until the IVar is filled. Because
the value read will never change, this is a pure computation.
data IVar a Source
A write-once (immutable) Variable
new :: IO (IVar a)Source
Creates a new, empty IVar.
newFull :: a -> IO (IVar a)Source
Create a new filled IVar.
This is slightly cheaper than creating a new IVar and then writing to it.
read :: IVar a -> aSource
Returns the value of an IVar.
The evaluation will block until a value is written to the IVar if there
is no value yet.
tryRead :: IVar a -> IO (Maybe a)Source
Try to read an IVar. Returns Nothing if there is not value yet.
write :: IVar a -> a -> IO ()Source
Writes a value to an IVar. Raises a NonTermination exception if
tryWrite :: IVar a -> a -> IO BoolSource
Writes a value to an IVar. Returns True if successful.
Produced by Haddock version 2.10.0