I haven't used boost's locking mechanisms yet, but POSIX condvars
don't protect against spurious wakes. Thus,
[snip]
> //wait for an answer..you probably want this in a loop,
> bool ready = _cond.timed_wait(lock, xt, boost::lambda::var(_data_ready));
while(!_data_ready) {
_cond.timed_wait(... _data_ready);
}