This module uses Haskell concurrency libraries to build an extremely simple event system that should perform better than the Control.Event module but does not provide features such as STM action scheduling.
Documentation
addEvent :: Int -> IO () -> IO EventIdSource
'addEvent delay action' will delay
for delay
microseconds then execute action
. An EventId
is returned, allowing the event to be canceled.
delEvent :: EventId -> IO BoolSource
'delEvent eid' deletes the event and returns
True
if the event was _probably_ deleted*. If False
is returned
then the time definately elapsed and the action was forked off.
- There is a small possibility the delEvent occured after the forkIO but before the signalling MVar was filled, thus causing this uncertainty.