$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-08-11 15:46:43
Zeljko Vrba:
> Even worse:
>
> A: push; unlock; gets preempted
> B: wait_and_pop: succeeds, making the queue empty; unlocks the mutex
> A: gets scheduled again, notifies the condvar which has no waiters
> C: wait_and_pop: acquires mutex, sleeps on the condvar
No. C doesn't sleep because the wait is guarded by the predicate
the_queue.empty().