chan-split-0.1.3: Concurrent Chans as read/write pairs. Also provides generic Chan, Cofunctor classes.

Control.Concurrent.Chan.Split

Contents

Synopsis

Chan pairs

newSplitChan :: IO (InChan a, OutChan a)Source

Create corresponding read and write ends of a chan pair. Writes to the InChan side can be read on the OutChan side.

data InChan i Source

The write side of a chan pair

data OutChan o Source

The read side of a chan pair

Utility functions:

getChanContents :: OutChan a -> IO [a]Source

Return a lazy list representing the contents of the supplied OutChan, much like System.IO.hGetContents.

dupChan :: OutChan a -> IO (OutChan a)Source

Duplicate an OutChan: the duplicate channel begins empty, but data written to the corresponding InChan will appear in both, i.e. consuming a value from the copy will have no affect on the values in the original OutChan.

Supporting module