diff --git a/Lib/queue.py b/Lib/queue.py index 773b680d8c6..450f845d443 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()