[Python-checkins] r70508 - python/branches/py3k/Lib/queue.py

benjamin.peterson python-checkins at python.org
Sat Mar 21 18:36:10 CET 2009


Author: benjamin.peterson
Date: Sat Mar 21 18:36:10 2009
New Revision: 70508

Log:
port the queue change r70405

Modified:
   python/branches/py3k/Lib/queue.py

Modified: python/branches/py3k/Lib/queue.py
==============================================================================
--- python/branches/py3k/Lib/queue.py	(original)
+++ python/branches/py3k/Lib/queue.py	Sat Mar 21 18:36:10 2009
@@ -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 @@
     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):


More information about the Python-checkins mailing list