box-0.0.1.5: boxes

Safe HaskellNone
LanguageHaskell2010

Box.Queue

Description

queues Follows pipes-concurrency

Synopsis

Documentation

data Queue a Source #

Queue specifies how messages are queued

queue :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m (l, r) Source #

create an unbounded queue

queueC :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m l Source #

create an unbounded queue, returning the committer result

queueE :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m r Source #

create an unbounded queue, returning the emitter result

queueCM :: MonadConc m => (Committer m a -> m l) -> (Emitter m a -> m r) -> m l Source #

create an unbounded queue, returning the emitter result

queueEM :: MonadConc m => (Committer m a -> m l) -> (Emitter m a -> m r) -> m r Source #

create an unbounded queue, returning the emitter result

queueCLog :: (Show a, MonadConc m, MonadIO m) => (Committer m a -> m l) -> (Emitter m a -> m r) -> m l Source #

create an unbounded queue, returning the committer result

queueELog :: (Show a, MonadConc m, MonadIO m) => (Committer m a -> m l) -> (Emitter m a -> m r) -> m r Source #

create an unbounded queue, returning the emitter result

waitCancel :: MonadConc m => m b -> m a -> m b Source #

wait for the first action, and then cancel the second

toBoxLog :: (Show a, MonadIO m, MonadConc m) => Queue a -> m (Box m a a, m ()) Source #

ends :: MonadSTM stm => Queue a -> stm (a -> stm (), stm a) Source #

create a queue, returning the ends