control-event-0.3.0: Event scheduling system.Source codeContentsIndex
Control.Event
Description

This module can execute events at specified time. It uses a two thread system that allows the STM adding and deleting of new threads without requiring later IO actions.

This differs from control-timeout in that control-event is: * More complex * Requires initilization * Allows pure STM adding and removing of events (no post STM IO action) * Allows user control over event systems (can have more than one) * Allows events to run in event handler thread (advisable if thread spark is too expensive / computation is cheap) * No possible duplication of EventId (theoretical! no real advantage)

A shim has been made providing control-timeout API with Control.Event running under the hood (called Control.Event.Timeout).

Synopsis
data EventId
data EventSystem
noEvent :: EventId
initEventSystem :: IO EventSystem
addEvent :: EventSystem -> ClockTime -> IO () -> IO EventId
addEventSTM :: EventSystem -> ClockTime -> IO () -> STM EventId
cancelEvent :: EventSystem -> EventId -> IO Bool
cancelEventSTM :: EventSystem -> EventId -> STM Bool
evtSystemSize :: EventSystem -> STM Int
Documentation
data EventId Source
IDs useful for canceling previously scheduled events.
show/hide Instances
data EventSystem Source
The event system must be initilized using initEventSystem. More than one event system can be instantiated at once (eg. for non-interference).
noEvent :: EventIdSource
A value indicating there is no such event. Canceling this event returns True and has no other effect.
initEventSystem :: IO EventSystemSource
The only way to get an event system is to initilize one
addEvent :: EventSystem -> ClockTime -> IO () -> IO EventIdSource
Add an *action* to be performed at *time* by *system*. Returns a unique ID.
addEventSTM :: EventSystem -> ClockTime -> IO () -> STM EventIdSource
Atomic version of addEvent
cancelEvent :: EventSystem -> EventId -> IO BoolSource
Cancel an event from the system, returning True on success.
cancelEventSTM :: EventSystem -> EventId -> STM BoolSource
Atomic version of cancelEvent
evtSystemSize :: EventSystem -> STM IntSource
Returns the number of pending events.
Produced by Haddock version 2.1.0