stm-io-hooks-1.1.2: Launch your IO-actions from within the STM monad

Copyright(c) Peter Robinson 2009 The University of Glasgow 2004
LicenseBSD-style (see the file LICENSE)
MaintainerPeter Robinson <>
Portabilitynon-portable (requires STM)
Safe HaskellNone





data TChan a Source #

TChan is an abstract type representing an unbounded FIFO channel.

newTChan :: MonadAdvSTM m => m (TChan a) Source #

Build and returns a new instance of TChan

newTChanIO :: IO (TChan a) Source #

IO version of newTChan. This is useful for creating top-level TChans using unsafePerformIO, because using atomically inside unsafePerformIO isn't possible.

readTChan :: MonadAdvSTM m => TChan a -> m a Source #

Read the next value from the TChan.

writeTChan :: MonadAdvSTM m => TChan a -> a -> m () Source #

Write a value to a TChan.

dupTChan :: MonadAdvSTM m => TChan a -> m (TChan a) Source #

Duplicate a TChan: 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.

unGetTChan :: MonadAdvSTM m => TChan a -> a -> m () Source #

Put a data item back onto a channel, where it will be the next item read.

isEmptyTChan :: MonadAdvSTM m => TChan a -> m Bool Source #

Returns True if the supplied TChan is empty.