Safe Haskell | None |
---|
The signal story. Posix signals are external events that invoke signal handlers in Haskell. The signal handlers in turn throw dynamic exceptions. Our instance of MonadError for LB maps the dynamic exceptions to SignalCaughts, which can then be caught by a normal catchIrc or handleIrc
- newtype SignalException = SignalException Signal
- withHandler :: (MonadIO m, MonadError e m) => Signal -> Handler -> m () -> m ()
- withHandlerList :: (MonadError e m, MonadIO m) => [Signal] -> (Signal -> Handler) -> m () -> m ()
- ircSignalsToCatch :: [Signal]
- ircSignalMessage :: Signal -> [Char]
- ircSignalHandler :: ThreadId -> Signal -> Handler
- releaseSignals :: IO ()
- catchLock :: MVar ()
- withIrcSignalCatch :: (MonadError e m, MonadIO m) => m () -> m ()
Documentation
newtype SignalException Source
withHandler :: (MonadIO m, MonadError e m) => Signal -> Handler -> m () -> m ()Source
withHandlerList :: (MonadError e m, MonadIO m) => [Signal] -> (Signal -> Handler) -> m () -> m ()Source
ircSignalMessage :: Signal -> [Char]Source
ircSignalHandler :: ThreadId -> Signal -> HandlerSource
releaseSignals :: IO ()Source
Release all signal handlers
withIrcSignalCatch :: (MonadError e m, MonadIO m) => m () -> m ()Source
Register signal handlers to catch external signals