From: Raymond Hettinger Date: Fri, 6 Mar 2009 23:55:28 +0000 (+0000) Subject: Document the suggested alternative to emtpy() and full(). X-Git-Tag: v3.1a1~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=611eaf0e66bfd00d2ee9e25d4ae9648c9dc2f600;p=thirdparty%2FPython%2Fcpython.git Document the suggested alternative to emtpy() and full(). --- diff --git a/Lib/queue.py b/Lib/queue.py index 773b680d8c6a..450f845d4431 100644 --- a/Lib/queue.py +++ b/Lib/queue.py @@ -91,14 +91,31 @@ class Queue: 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()