winpthreads/cond.c: Only update `waiters_count_` with `waiters_count_lock_` locked. Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-libraries/winpthreads/src/cond.c b/mingw-w64-libraries/winpthreads/src/cond.c index 368ee8a..8df395e 100644 --- a/mingw-w64-libraries/winpthreads/src/cond.c +++ b/mingw-w64-libraries/winpthreads/src/cond.c
@@ -488,7 +488,9 @@ r = do_sema_b_wait (_c->sema_b, 0, INFINITE,&_c->waiters_b_lock_,&_c->value_b); if (r != 0) return r; + EnterCriticalSection (&_c->waiters_count_lock_); _c->waiters_count_++; + LeaveCriticalSection(&_c->waiters_count_lock_); r = do_sema_b_release (_c->sema_b, 1,&_c->waiters_b_lock_,&_c->value_b); if (r != 0) return r;