Использование boost :: unique_lock :: timed_lock

повышение :: timed_lock

void wait(int seconds) 
{ 
  boost::this_thread::sleep(boost::posix_time::seconds(seconds)); 
} 

boost::timed_mutex mutex; 

void thread() 
{ 
  for (int i = 0; i < 5; ++i) 
  { 
    wait(1); 
    boost::unique_lock lock(mutex, boost::try_to_lock); 
    if (!lock.owns_lock()) 
      lock.timed_lock(boost::get_system_time() + boost::posix_time::seconds(1));//<     std::cout < "Thread " < boost::this_thread::get_id() < ": " < i < std::endl; 
    boost::timed_mutex *m = lock.release(); 
    m->unlock(); 
  } 
}

Ответы на вопрос(2)

Ваш ответ на вопрос