Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data SupervisorMessage n
- data Strategy
- = Notify ((Async (), Either SomeException ()) -> STM ())
- | KillAll
- | IgnoreGraceful
- | IgnoreAll
- supervisor :: (MonadUnliftIO m, Mailbox mbox (SupervisorMessage n), m ~ n) => Strategy -> mbox (SupervisorMessage n) -> [n ()] -> m ()
- addChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> n () -> m (Async ())
- removeChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> Async () -> m ()
- stopSupervisor :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> m ()
Documentation
data SupervisorMessage n Source #
A supervisor will start, stop and monitor processes.
Supervisor strategies to decide what to do when a child stops.
Notify ((Async (), Either SomeException ()) -> STM ()) | run this |
KillAll | kill all processes and propagate exception |
IgnoreGraceful | ignore processes that stop without raising exceptions |
IgnoreAll | do nothing and keep running if a process dies |
supervisor :: (MonadUnliftIO m, Mailbox mbox (SupervisorMessage n), m ~ n) => Strategy -> mbox (SupervisorMessage n) -> [n ()] -> m () Source #
addChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> n () -> m (Async ()) Source #
Add a new child process to the supervisor. The child process will run in
the supervisor context. Will return an Async
for the child. This function
will not block or raise an exception if the child dies.
removeChild :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> Async () -> m () Source #
Stop a child process controlled by the supervisor. Must pass the child
Async
. Will not wait for the child to die.
stopSupervisor :: (MonadUnliftIO n, MonadIO m, Mailbox mbox (SupervisorMessage n)) => mbox (SupervisorMessage n) -> m () Source #
Stop the supervisor and its children.