[Patches] [ python-Patches-1175933 ] threading.Condition.wait()
return value indicates timeout
SourceForge.net
noreply at sourceforge.net
Fri Apr 29 08:59:23 CEST 2005
Patches item #1175933, was opened at 2005-04-04 04:09
Message generated for change (Comment added) made by mdehoon
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1175933&group_id=5470
Category: Library (Lib)
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Martin Blais (blais)
Assigned to: Nobody/Anonymous (nobody)
Summary: threading.Condition.wait() return value indicates timeout
Initial Comment:
A condition variable returns in two cases: it was
notified by another thread, or it timed out (if a
timeout was specified). See an example in the popular
Boost C++ library:
http://boost.org/doc/html/condition.html
This patch adds this capability to the Python
threading.Condition.wait() method, which used to return
nothing. I added the relevant couple of lines to the
documentaion as well (see patch).
(An example is using a condition variable as a sentinel
for exiting a loop or a polling thread. Using the
return value one can decide whether to exit the loop or
not.)
----------------------------------------------------------------------
Comment By: Michiel de Hoon (mdehoon)
Date: 2005-04-29 15:59
Message:
Logged In: YES
user_id=488897
This looks like a good idea to me. It will help to clean up
the "get" method in Queue.py, which now has:
while self._empty():
remaining = endtime - _time()
if remaining <= 0.0:
raise Empty
self.not_empty.wait(remaining)
Here, self.not_empty is an object of the class
threading.Condition. It seems odd that first we wait for
self.not_empty.wait to return, and then have to check
self._empty(), even though self.not_empty.wait could have
told us directly if it was notified or it timed out.
I'll write a message to python-dev in support of this patch
(I'm a mere patch reviewer, not an official Python developer).
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1175933&group_id=5470
More information about the Patches
mailing list