-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Provides API for timer based execution of IO actions -- -- This is a lightweight package built on top of the async package -- providing easy to use periodic timers. This can be used for executing -- IO actions periodically. @package async-timer @version 0.1.4.0 module Control.Concurrent.Async.Timer.Unsafe -- | This is the type of timer handle, which will be provided to the IO -- action to be executed within withAsyncTimer. The user can use -- timerWait on this timer to delay execution until the next timer -- synchronization event. data Timer -- | Default timer configuration specifies no initial delay and an interval -- delay of 1s. defaultTimerConf :: TimerConf -- | Set the initial delay in the provided timer configuration. timerConfSetInitDelay :: Int -> TimerConf -> TimerConf -- | Set the interval delay in the provided timer configuration. timerConfSetInterval :: Int -> TimerConf -> TimerConf -- | Spawn a timer thread based on the provided timer configuration and -- then run the provided IO action, which receives the new timer as an -- argument and call timerWait on it for synchronization. When the -- provided IO action has terminated, the timer thread will be terminated -- also. withAsyncTimer :: (MonadBaseControl IO m, MonadMask m) => TimerConf -> (Timer -> m b) -> m b -- | Wait for the next synchronization event on the givem timer. timerWait :: MonadBaseControl IO m => Timer -> m () module Control.Concurrent.Async.Timer -- | This is the type of timer handle, which will be provided to the IO -- action to be executed within withAsyncTimer. The user can use -- timerWait on this timer to delay execution until the next timer -- synchronization event. data Timer -- | Default timer configuration specifies no initial delay and an interval -- delay of 1s. defaultTimerConf :: TimerConf -- | Set the initial delay in the provided timer configuration. timerConfSetInitDelay :: Int -> TimerConf -> TimerConf -- | Set the interval delay in the provided timer configuration. timerConfSetInterval :: Int -> TimerConf -> TimerConf -- | Spawn a timer thread based on the provided timer configuration and -- then run the provided IO action, which receives the new timer as an -- argument and call timerWait on it for synchronization. When the -- provided IO action has terminated, the timer thread will be terminated -- also. -- -- This functions requires the contraint Forall (Pure -- m), which means that the monad m needs to satisfy -- StM m a ~ a for all a. withAsyncTimer :: (MonadBaseControl IO m, MonadMask m, Forall (Pure m)) => TimerConf -> (Timer -> m b) -> m b -- | Wait for the next synchronization event on the givem timer. timerWait :: MonadBaseControl IO m => Timer -> m ()