std::cv_status wait_until(const std::unique_lock<Mutex>& lock, double timeout_time);
std::cv_status wait_for(const std::unique_lock<Mutex>& lock, double duration);
std::cv_status wait_until(const std::unique_lock<Mutex>& lock, double timeout_time);
std::cv_status wait_for(const std::unique_lock<Mutex>& lock, double duration);