|
|
|
| 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 |
|
|
|
| Documentation |
|
|
| IDs useful for canceling previously scheduled events.
| Instances | |
|
|
|
| The event system must be initilized using initEventSystem.
More than one event system can be instantiated at once
(eg. for non-interference).
|
|
|
|
| A value indicating there is no such event.
Canceling this event returns True and has no other effect.
|
|
|
| The only way to get an event system is to initilize one
|
|
|
| Add an *action* to be performed at *time* by *system*. Returns a unique ID.
|
|
|
| Atomic version of addEvent
|
|
|
| Cancel an event from the system, returning True on success.
|
|
|
| Atomic version of cancelEvent
|
|
|
| Returns the number of pending events.
|
|
| Produced by Haddock version 2.1.0 |