31 void Timeout::set(
const std::function<
void()>& func,
const int64_t wait)
34 throw std::logic_error(
35 "Timeout cannot be set() while it is still active");
39 std::async(std::launch::async, [&mutex = _mutex,
40 &condition = _condition,
41 &cleared = _cleared, wait, func] {
42 std::unique_lock<std::mutex> lock(mutex);
45 if (condition.wait_for(lock, std::chrono::milliseconds(wait)) ==
46 std::cv_status::timeout)
61 std::unique_lock<std::mutex> lock(_mutex);
62 _condition.notify_one();
void set(const std::function< void()> &func, const int64_t wait)