async-timer-0.2.0.0: Provides API for timer based execution of IO actions

Copyright(c) Moritz Clasmeier 2016 2018
LicenseBSD3
Maintainermtesseract@silverratio.net
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Control.Concurrent.Async.Timer

Description

This module exports the public API for asynchronous timers.

Synopsis

Documentation

data Timer Source #

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 TimerConf Source #

Type of a timer configuration.

defaultConf :: TimerConf Source #

Default timer configuration specifies no initial delay and an interval delay of 1s.

setInitDelay :: Int -> TimerConf -> TimerConf Source #

Set the initial delay in the provided timer configuration.

setInterval :: Int -> TimerConf -> TimerConf Source #

Set the interval delay in the provided timer configuration.

withAsyncTimer :: (MonadUnliftIO m, MonadMask m) => TimerConf -> (Timer -> m b) -> m b Source #

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.

wait :: MonadUnliftIO m => Timer -> m () Source #

Wait for the next synchronization event on the givem timer.

reset :: MonadUnliftIO m => Timer -> m () Source #

Reset the provided timer.