Safe Haskell | None |
---|---|
Language | Haskell2010 |
queues Follows pipes-concurrency
Synopsis
- data Queue a
- queue :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m (l, r)
- queueC :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m l
- queueE :: MonadConc m => (Committer (STM m) a -> m l) -> (Emitter (STM m) a -> m r) -> m r
- queueCM :: MonadConc m => (Committer m a -> m l) -> (Emitter m a -> m r) -> m l
- queueEM :: MonadConc m => (Committer m a -> m l) -> (Emitter m a -> m r) -> m r
- queueCLog :: (Show a, MonadConc m, MonadIO m) => (Committer m a -> m l) -> (Emitter m a -> m r) -> m l
- queueELog :: (Show a, MonadConc m, MonadIO m) => (Committer m a -> m l) -> (Emitter m a -> m r) -> m r
- waitCancel :: MonadConc m => m b -> m a -> m b
- toBoxLog :: (Show a, MonadIO m, MonadConc m) => Queue a -> m (Box m a a, m ())
- ends :: MonadSTM stm => Queue a -> stm (a -> stm (), stm a)
Documentation
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