You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 in interruptible_wait
total_count is 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.
The text was updated successfully, but these errors were encountered:
Boost 1.83.0
MSVC 19.38.33135.0
Occasionally I hit an issue where a
boost::condition_variable_any
gets stuck duringwait()
with a predicate, where I know that the predicate evaluates totrue
andnotify_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 thatwait()
is ininterruptible_wait
total_count
is 0So presumably
total_count
has been decremented inwake_waiters
butwinapi::ReleaseSemaphore
hasn't resulted in the waiting thread resuming.ReleaseSemaphore
officially can fail butcondition_variable
's usage doesn't check the return code. Sincetotal_count
is zero subsequent calls tonotify
will have no effect.The same app code runs on linux without hitting this issue.
The text was updated successfully, but these errors were encountered: