◐ Shell
clean mode source ↗

Message 158013 - Python tracker

A few comments:
1)
   with cv:
       make_an_item_available()
+       cv.notify()

2) one of the benefits of wait_for() is that it automates the tricky timekeeping needed if one wants an somewhat accurate timeout, you may want to mention this specifically.

3) the offending part.  I see that you don't want to use the technical terms of spurious wakeups or stolen wakeups. That's ok, but the resulting explanation is somwhat bogus.  I suggest the following:

The ``while`` loop checking for the application's condition is necessary
because :meth:`~Condition.wait` can return after an arbitrary long time, and the condition which prompted the :meth:`~Condition.notify` call may not yet, or no longer, hold true.  This is an inherent property of multi-threaded programming and the use of this pattern is essential for the robust use of Condition objects.