time-manager-0.0.0: Scalable timer
Safe HaskellSafe-Inferred
LanguageHaskell98

System.TimeManager

Synopsis

Types

type Manager = Reaper [Handle] Handle Source #

A timeout manager

type TimeoutAction = IO () Source #

An action to be performed on timeout.

data Handle Source #

A handle used by Manager

Manager

initialize :: Int -> IO Manager Source #

Creating timeout manager which works every N micro seconds where N is the first argument.

stopManager :: Manager -> IO () Source #

Stopping timeout manager with onTimeout fired.

killManager :: Manager -> IO () Source #

Killing timeout manager immediately without firing onTimeout.

withManager Source #

Arguments

:: Int

timeout in microseconds

-> (Manager -> IO a) 
-> IO a 

Call the inner function with a timeout manager.

Registration

register :: Manager -> TimeoutAction -> IO Handle Source #

Registering a timeout action.

registerKillThread :: Manager -> TimeoutAction -> IO Handle Source #

Registering a timeout action of killing this thread.

Control

tickle :: Handle -> IO () Source #

Setting the state to active. Manager turns active to inactive repeatedly.

cancel :: Handle -> IO () Source #

Setting the state to canceled. Manager eventually removes this without timeout action.

pause :: Handle -> IO () Source #

Setting the state to paused. Manager does not change the value.

resume :: Handle -> IO () Source #

Setting the paused state to active. This is an alias to tickle.

Exceptions

data TimeoutThread Source #

Constructors

TimeoutThread 

Instances

Instances details
Exception TimeoutThread Source # 
Instance details

Defined in System.TimeManager

Methods

toException :: TimeoutThread -> SomeException

fromException :: SomeException -> Maybe TimeoutThread

displayException :: TimeoutThread -> String

Show TimeoutThread Source # 
Instance details

Defined in System.TimeManager

Methods

showsPrec :: Int -> TimeoutThread -> ShowS

show :: TimeoutThread -> String

showList :: [TimeoutThread] -> ShowS