diff options
-rw-r--r-- | Lib/sched.py | 8 | ||||
-rw-r--r-- | Misc/ACKS | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Lib/sched.py b/Lib/sched.py index 6c01e69..3e41198 100644 --- a/Lib/sched.py +++ b/Lib/sched.py @@ -35,6 +35,9 @@ from collections import namedtuple __all__ = ["scheduler"] class Event(namedtuple('Event', 'time, priority, action, argument, kwargs')): + def __init__(self, *args, **kwargs): + super(Event, self).__init__(*args, **kwargs) + self._scheduled = False def __eq__(s, o): return (s.time, s.priority) == (o.time, o.priority) def __ne__(s, o): return (s.time, s.priority) != (o.time, o.priority) def __lt__(s, o): return (s.time, s.priority) < (o.time, o.priority) @@ -59,6 +62,7 @@ class scheduler: """ event = Event(time, priority, action, argument, kwargs) + event._scheduled = True heapq.heappush(self._queue, event) return event # The ID @@ -81,6 +85,9 @@ class scheduler: self._queue.remove(event) heapq.heapify(self._queue) + def is_scheduled(self, event): + return event._scheduled + def empty(self): """Check whether the queue is empty.""" return not self._queue @@ -122,6 +129,7 @@ class scheduler: # Verify that the event was not removed or altered # by another thread after we last looked at q[0]. if event is checked_event: + event._scheduled = False action(*argument, **kwargs) delayfunc(0) # Let other threads run else: @@ -11,7 +11,6 @@ Without you, I would've stopped working on Python long ago! PS: In the standard Python distribution, this file is encoded in UTF-8 and the list is in rough alphabetical order by last names. -Chris Clark Rajiv Abraham David Abrahams Ron Adam @@ -179,6 +178,7 @@ Tom Christiansen Vadim Chugunov David Cinege Craig Citro +Chris Clark Mike Clarkson Andrew Clegg Brad Clements |