diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-03-21 17:36:10 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-03-21 17:36:10 (GMT) |
commit | 0ed52455b76458e935ca3fe368a4637000769691 (patch) | |
tree | 77f7f4a9ed7fd508c55385af0762080766d38da7 /Lib | |
parent | f07d0026da4330724ae2f17fb453db3d7f539e56 (diff) | |
download | cpython-0ed52455b76458e935ca3fe368a4637000769691.zip cpython-0ed52455b76458e935ca3fe368a4637000769691.tar.gz cpython-0ed52455b76458e935ca3fe368a4637000769691.tar.bz2 |
port the queue change r70405
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/queue.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Lib/queue.py b/Lib/queue.py index 450f845..f051f1c 100644 --- a/Lib/queue.py +++ b/Lib/queue.py @@ -1,6 +1,10 @@ """A multi-producer, multi-consumer queue.""" from time import time as _time +try: + import threading as _threading +except ImportError: + import dummy_threading as _threading from collections import deque import heapq @@ -20,26 +24,22 @@ class Queue: If maxsize is <= 0, the queue size is infinite. """ def __init__(self, maxsize=0): - try: - import threading - except ImportError: - import dummy_threading as threading self.maxsize = maxsize self._init(maxsize) # mutex must be held whenever the queue is mutating. All methods # that acquire mutex must release it before returning. mutex # is shared between the three conditions, so acquiring and # releasing the conditions also acquires and releases mutex. - self.mutex = threading.Lock() + self.mutex = _threading.Lock() # Notify not_empty whenever an item is added to the queue; a # thread waiting to get is notified then. - self.not_empty = threading.Condition(self.mutex) + self.not_empty = _threading.Condition(self.mutex) # Notify not_full whenever an item is removed from the queue; # a thread waiting to put is notified then. - self.not_full = threading.Condition(self.mutex) + self.not_full = _threading.Condition(self.mutex) # Notify all_tasks_done whenever the number of unfinished tasks # drops to zero; thread waiting to join() is notified to resume - self.all_tasks_done = threading.Condition(self.mutex) + self.all_tasks_done = _threading.Condition(self.mutex) self.unfinished_tasks = 0 def task_done(self): |