import threading
[docs]class Sleeper:
"""
Provides a 'sleep' method that sleeps for a number of seconds *unless*
the notify method is called (from a different thread).
"""
[docs] def __init__(self):
self.condition = threading.Condition()
[docs] def sleep(self, seconds):
# Should this be in a try/finally block? -John
self.condition.acquire()
self.condition.wait(seconds)
self.condition.release()
[docs] def wake(self):
# Should this be in a try/finally block? -John
self.condition.acquire()
self.condition.notify()
self.condition.release()