Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class Mailbox mbox where Source #
mailboxEmptySTM :: mbox msg -> STM Bool Source #
sendSTM :: msg -> mbox msg -> STM () Source #
receiveSTM :: mbox msg -> STM msg Source #
requeueMsg :: msg -> mbox msg -> STM () Source #
withSource :: (MonadUnliftIO m, Mailbox mbox) => ConduitT () msg m () -> mbox msg -> (Async () -> m a) -> m a Source #
data SupervisorMessage n Source #
MonadUnliftIO n => AddChild (n ()) (Reply (Async ())) | |
RemoveChild (Async ()) | |
StopSupervisor |
Notify ((Async (), Either SomeException ()) -> STM ()) | |
KillAll | |
IgnoreGraceful | |
IgnoreAll |
supervisor :: (MonadUnliftIO m, Mailbox mbox) => Strategy -> mbox (SupervisorMessage m) -> [m ()] -> m () Source #
addChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox) => mbox (SupervisorMessage n) -> n () -> m (Async ()) Source #
removeChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox) => mbox (SupervisorMessage n) -> Async () -> m () Source #
stopSupervisor :: (MonadUnliftIO n, MonadIO m, Mailbox mbox) => mbox (SupervisorMessage n) -> m () Source #
publisher :: (MonadIO m, Mailbox mbox, Mailbox events, Mailbox ch, Eq (ch msg)) => Publisher mbox ch msg -> events msg -> m () Source #
boundedPublisher :: (MonadIO m, Mailbox mbox, Mailbox events) => Publisher mbox TBQueue msg -> events msg -> m () Source #
withPubSub :: (MonadUnliftIO m, Mailbox mbox) => Publisher mbox TQueue msg -> (TQueue msg -> m a) -> m a Source #
withBoundedPubSub :: (MonadUnliftIO m, Mailbox mbox) => Int -> Publisher mbox TBQueue msg -> (TBQueue msg -> m a) -> m a Source #