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 #
timeout :: forall m b. (MonadIO m, MonadBaseControl IO m, Forall (Pure m)) => Int -> m b -> m (Maybe b) Source #
withSource :: (MonadIO m, MonadBaseControl IO m, Forall (Pure m), Mailbox mbox) => Source m msg -> mbox msg -> (Async () -> m a) -> m a Source #
data SupervisorMessage Source #
AddChild (IO ()) (Reply (Async ())) | |
RemoveChild (Async ()) | |
StopSupervisor |
Notify ((Async (), Either SomeException ()) -> STM ()) | |
KillAll | |
IgnoreGraceful | |
IgnoreAll |
supervisor :: (MonadIO m, MonadBaseControl IO m, Forall (Pure m), Mailbox mbox) => Strategy -> mbox SupervisorMessage -> [m ()] -> m () Source #
removeChild :: (MonadIO m, Mailbox mbox) => mbox SupervisorMessage -> Async () -> m () Source #
stopSupervisor :: (MonadIO m, Mailbox mbox) => mbox SupervisorMessage -> m () Source #
module Control.Concurrent.STM