strict-concurrency-0.1: Strict concurrency abstractionsSource codeContentsIndex
Portabilitynon-portable (concurrency)
The Chan type
Stream interface

Unbounded, element-strict channels. Elements will be evaluated to WHNF on entering the channel. For some concurrency applications, this is more desirable than passing an unevaluted thunk through the channel (for instance, it guarantees the node willl be evaluated to WHNF in a worker thead).

Element-strict channes may potentially use more memory than lazy channels

data Chan a
newChan :: IO (Chan a)
writeChan :: Chan a -> a -> IO ()
readChan :: Chan a -> IO a
dupChan :: Chan a -> IO (Chan a)
unGetChan :: Chan a -> a -> IO ()
isEmptyChan :: Chan a -> IO Bool
getChanContents :: Chan a -> IO [a]
writeList2Chan :: Chan a -> [a] -> IO ()
The Chan type
data Chan a Source
Chan is an abstract type representing an unbounded FIFO channel.
newChan :: IO (Chan a)Source
Build and returns a new instance of Chan.
writeChan :: Chan a -> a -> IO ()Source
Write a value to a Chan.
readChan :: Chan a -> IO aSource
Read the next value from the Chan.
dupChan :: Chan a -> IO (Chan a)Source
Duplicate a Chan: the duplicate channel begins empty, but data written to either channel from then on will be available from both. Hence this creates a kind of broadcast channel, where data written by anyone is seen by everyone else.
unGetChan :: Chan a -> a -> IO ()Source
Put a data item back onto a channel, where it will be the next item read.
isEmptyChan :: Chan a -> IO BoolSource
Returns True if the supplied Chan is empty.
Stream interface
getChanContents :: Chan a -> IO [a]Source
Return a lazy list representing the contents of the supplied Chan, much like System.IO.hGetContents.
writeList2Chan :: Chan a -> [a] -> IO ()Source
Write an entire list of items to a Chan.
Produced by Haddock version 2.4.2