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

raymond.hettinger python-checkins at python.org
Sat Mar 7 00:55:28 CET 2009


Author: raymond.hettinger
Date: Sat Mar  7 00:55:28 2009
New Revision: 70209

Log:
Document the suggested alternative to emtpy() and full().

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  7 00:55:28 2009
@@ -91,14 +91,31 @@
         return n
 
     def empty(self):
-        """Return True if the queue is empty, False otherwise (not reliable!)."""
+        """Return True if the queue is empty, False otherwise (not reliable!).
+
+        This method is likely to be removed at some point.  Use qsize() == 0
+        as a direct substitute, but be aware that either approach risks a race
+        condition where a queue can grow before the result of empty() or
+        qsize() can be used.
+
+        To create code that needs to wait for all queued tasks to be
+        completed, the preferred technique is to use the join() method.
+
+        """
         self.mutex.acquire()
         n = not self._qsize()
         self.mutex.release()
         return n
 
     def full(self):
-        """Return True if the queue is full, False otherwise (not reliable!)."""
+        """Return True if the queue is full, False otherwise (not reliable!).
+
+        This method is likely to be removed at some point.  Use qsize() == n
+        as a direct substitute, but be aware that either approach risks a race
+        condition where a queue can shrink before the result of full() or
+        qsize() can be used.
+
+        """
         self.mutex.acquire()
         n = 0 < self.maxsize == self._qsize()
         self.mutex.release()


More information about the Python-checkins mailing list