Description
Additional types of channels for STM.
README.md
stm-chans
This package offers a collection of channel types, similar to Control.Concurrent.STM.{TChan,TQueue}
but with additional features. In particular we offer the following data types:
Control.Concurrent.STM.TBChan
: Bounded FIFO channels. When the channel is full, writers will block/retry. This ensures that the writers do not get too far ahead of the readers, which helps to make sure that memory and cpu resources are used responsibly.Control.Concurrent.STM.TMChan
: Closeable FIFO channels.Control.Concurrent.STM.TMQueue
: Closeable FIFO queues. LikeTChan (Maybe a)
but with a monotonicity guarantee that onceNothing
is returned all future reads will beNothing
as well.Control.Concurrent.STM.TBMChan
: Bounded Closeable FIFO channels.Control.Concurrent.STM.TBMQueue
: Bounded Closeable FIFO queues. Combines the capabilities ofTBChan
andTMChan
.
Install
In general, this is a simple package and should be easy to install. It does require GHC however, because it relies on the Control.Concurrent.STM.TChan type which (for some unknown reason) is GHC-only. With the cabal-install program you can just do:
$> cabal install stm-chans