Event Objects
-------------
This is one of the simplest mechanisms for communication between
threads: one thread signals an event and one or more other threads are
waiting for it.
An event object manages an internal flag that can be set to true with
the `set()' method and reset to false with the `clear()' method. The
`wait()' method blocks until the flag is true.
`Event()'
The internal flag is initially false.
`isSet()'
Return true if and only if the internal flag is true.
`set()'
Set the internal flag to true. All threads waiting for it to
become true are awakened. Threads that call `wait()' once the
flag is true will not block at all.
`clear()'
Reset the internal flag to false. Subsequently, threads calling
`wait()' will block until `set()' is called to set the internal
flag to true again.
`wait([timeout])'
Block until the internal flag is true. If the internal flag is
true on entry, return immediately. Otherwise, block until another
thread calls `set()' to set the flag to true, or until the
optional timeout occurs.
When the timeout argument is present and not `None', it should be a
floating point number specifying a timeout for the operation in
seconds (or fractions thereof).