Пример использования boost:: condition:: timed wait

есть ли у кого-нибудь пример того, как наиболее легко использовать boost::condition::timed_wait? Есть несколько тем по теме здесь, здесь и здесь, но ни один из них не имеет рабочего примера. И boost doc, как обычно, довольно редкий.

1 ответов


на самом деле, я наконец нашел ссылку на полный пример здесь. С небольшой адаптацией, это, кажется, вызов.

boost::system_time const timeout=boost::get_system_time()+ boost::posix_time::milliseconds(35000);
boost::mutex::scoped_lock lock(the_mutex);
if(the_condition_variable.timed_wait(lock,timeout,&CondFulfilled))
{
    <cond fulfilled code>
}
else
{
    <timeout code>
}
bool CondFulfilled() { ... }