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 _______________________________________________ Patches mailing list [email protected] http://mail.python.org/mailman/listinfo/patches
