
10 Mar
2009
10 Mar
'09
8:09 a.m.
2009/3/9 tom fogal
I haven't used boost's locking mechanisms yet, but POSIX condvars don't protect against spurious wakes. Thus,
[snip]
//wait for an answer.. bool ready = _cond.timed_wait(lock, xt, boost::lambda::var(_data_ready));
you probably want this in a loop,
while(!_data_ready) { _cond.timed_wait(... _data_ready); }
timed_wait with predicate (that's what OP used) does exactly this, it waits on condvar until predicate is satisfied. So problem is in some other place. Roman.