| Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> , Roel van Dijk <vandijk.roel@gmail.com> |
|---|
Control.Concurrent.Event
Description
An Event is a simple mechanism for communication between threads: one thread signals an event and other threads wait for it.
Each event has an internal State which is either Set or Cleared. This
state can be changed with the corresponding functions set and clear. The
wait function blocks until the state is Set. An important property of
setting an event is that all threads waiting for it are woken.
It was inspired by the Python Event object. See:
http://docs.python.org/3.1/library/threading.html#event-objects
This module is designed to be imported qualified. We suggest importing it like:
import Control.Concurrent.Event ( Event ) import qualified Control.Concurrent.Event as Event ( ... )
Documentation
waitTimeout :: Event -> Int -> IO BoolSource
Block until the event is set or until a timer expires.
Like wait but with a timeout. A return value of False indicates a timeout
occurred.
The timeout is specified in microseconds. A timeout of 0 μs will cause
the function to return False without blocking in case the event state is
Cleared. Negative timeouts are treated the same as a timeout of 0
μs. The maximum timeout is constrained by the range of the Int
type. The Haskell standard guarantees an upper bound of at least 2^29-1
giving a maximum timeout of at least (2^29-1) / 10^6 = ~536 seconds.