-
Notifications
You must be signed in to change notification settings - Fork 169
Open
Description
Boost 1.83.0
MSVC 19.38.33135.0
Occasionally I hit an issue where a boost::condition_variable_any gets stuck during wait() with a predicate, where I know that the predicate evaluates to true and notify_one() has definitely been called multiple times. All that I have to go on is a core dump which as well as showing the above shows that
- the thread running
wait()is ininterruptible_wait total_countis 0
So presumably total_count has been decremented in wake_waiters but winapi::ReleaseSemaphore hasn't resulted in the waiting thread resuming. ReleaseSemaphore officially can fail but condition_variable's usage doesn't check the return code. Since total_count is zero subsequent calls to notify will have no effect.

The same app code runs on linux without hitting this issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels