Safe Haskell | None |
---|---|
Language | Haskell2010 |
Manage an alarm clock running in a dedicated thread.
You specify an amount of time. The alarm clock waits for that amount of time, and then throws an exception back to you, to notify you the time has passed. You can stop and restart it at any time.
This is simply a convenient wrapper over Control.Timer, offered here becuase a common use of timers is to run actions with a time limit (timeout), and the API here makes it more straight-forward to do.
- data Alarm
- data AlarmWake
- newAlarm :: (TimeUnit t, MonadIO m) => t -> m Alarm
- releaseAlarm :: MonadIO m => Alarm -> m ()
- withAlarm :: (TimeUnit t, MonadIO m, MonadMask m) => t -> (Alarm -> m a) -> m a
- startAlarm :: MonadIO m => Alarm -> m ()
- startAlarm' :: (TimeUnit t, MonadIO m) => Alarm -> t -> m ()
- stopAlarm :: MonadIO m => Alarm -> m ()
- restartAlarm :: MonadIO m => Alarm -> m ()
- restartAlarm' :: (TimeUnit t, MonadIO m) => Alarm -> t -> m ()
- alarm :: (MonadIO m, MonadCatch m) => Alarm -> m a -> m (Maybe a)
- alarm' :: (TimeUnit t, MonadIO m, MonadCatch m) => Alarm -> t -> m a -> m (Maybe a)
Types
Creating and destroying alarm
releaseAlarm :: MonadIO m => Alarm -> m () Source
Starting an alarm
startAlarm :: MonadIO m => Alarm -> m () Source
startAlarm' :: (TimeUnit t, MonadIO m) => Alarm -> t -> m () Source
Stopping a alarm
Restarting a alarm
restartAlarm :: MonadIO m => Alarm -> m () Source
restartAlarm' :: (TimeUnit t, MonadIO m) => Alarm -> t -> m () Source