Message 113301 - Python tracker (original) (raw)
Questions:
why does _cond_timed_wait() decrement n_waiting twice?
why does _cond_timed_wait() use InterlockedDecrement()? it doesn't protect against regular accesses to the same memory location, since it isn't guarded by the mutex
why don't you simply pass NULL as the third parameter to ReleaseSemaphore() in _cond_signal()?
I don't understand what you call "possible race condition" in _cond_signal(). _cond_signal() is currently always called with the corresponding mutex held, by the way. We could add a comment to make it mandatory.