I have thread1 which is waiting on a condition from thread2. But it could be that thread2 is never signalling the condition variable. So I have added a timeout to the wait call in thread 1, like this:
cv.acquire()
cv.wait(1.0)
cv.release()
How can I know if the condition variable was signaled or a timeout occurred? wait does not seem to return any value. The python documentation on Condition Objects gives no clues about this.
You are not supposed to care; the typical case is that your waiting thread checks some shared state until that state matches some condition.
The documentation example is thus:
and the documentation also states:
If you do have a pressing need to distinguish between a timeout and a signal, you’ll need to use
Eventobjects instead; the.wait(timeout)call on anEventobject returnsNoneif the flag wasn’t set (which only happens when the timeout was reached).