Portability | non-portable (concurrency) |
---|---|
Stability | experimental |
Maintainer | sanzhiyan@gmail.com |
Unbounded closeable channels.
- data Chan t a
- data R
- data W
- newChan :: IO (Chan R a, Chan W a)
- writeChan :: Chan W a -> a -> IO Bool
- closeChan :: Chan W a -> IO Bool
- isClosedChan :: Chan t a -> IO Bool
- readChan :: Chan R a -> IO (Maybe a)
- forkChan :: Chan t a -> IO (Chan R a)
- unGetChan :: Chan R a -> a -> IO ()
- isEmptyChan :: Chan R a -> IO Bool
- getChanContents :: Chan R a -> IO [a]
- writeList2Chan :: Chan W a -> [a] -> IO (Maybe [a])
The Chan
type
Operations
newChan :: IO (Chan R a, Chan W a)Source
Build and returns a pair of Chan
, data written on the W end can be read from the R end.
writeChan :: Chan W a -> a -> IO BoolSource
Write a value to a Chan
.
Returns True if successful, False if the channel is closed.
isClosedChan :: Chan t a -> IO BoolSource
Non-blocking check.
forkChan :: Chan t a -> IO (Chan R a)Source
Forks a Chan
: data that will be written (W)
or is yet to be read (R) on the argument, will also be available on the returned channel.
unGetChan :: Chan R a -> a -> IO ()Source
Put a data item back onto a channel, where it will be the next item read.