void condvar_wait(Guard& guard, CondVar& condvar, bool has_timeout, boost::system_time timeout_time = boost::system_time()) { if (has_timeout) { condvar.timed_wait(guard, timeout_time); } else { condvar.wait(guard); } }