From f233b0c454cbdca54c510f7b77fb3a64dcd05f1e Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Tue, 15 Jan 2008 03:40:20 +0000 Subject: [PATCH] Better (?) text describing the lack of guarantees provided by qsize(), empty() and full(). --- Doc/library/queue.rst | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst index 0812b78a8b1..629a4b33d30 100644 --- a/Doc/library/queue.rst +++ b/Doc/library/queue.rst @@ -49,20 +49,25 @@ See the source code for details. The public methods are: .. method:: Queue.qsize() - Return the approximate size of the queue. Because of multithreading semantics, - this number is not reliable. + Return the approximate size of the queue. qsize() > 0 doesn't guarantee + that a subsequent get() will not block, nor that qsize() < maxsize + guarantee that put() will not block. .. method:: Queue.empty() - Return ``True`` if the queue is empty, ``False`` otherwise. Because of - multithreading semantics, this is not reliable. + Return ``True`` if the queue is empty, ``False`` otherwise. If empty() + returns ``True`` it doesn't guarantee that a subsequent call to put() + will not block. Similarly, if empty() returns ``False`` it doesn't + guarantee that a subsequent call to get() will not block. .. method:: Queue.full() - Return ``True`` if the queue is full, ``False`` otherwise. Because of - multithreading semantics, this is not reliable. + Return ``True`` if the queue is full, ``False`` otherwise. If full() + returns ``True`` it doesn't guarantee that a subsequent call to get() + will not block. Similarly, if full() returns ``False`` it doesn't + guarantee that a subsequent call to put() will not block. .. method:: Queue.put(item[, block[, timeout]])