sleeper_thread: allow interrupting sleep()
This keeps the function consistent with sleep_until() and sleep_for() which both can be interrupted. This is relevant to allow an update via a "signal" without an "interval" in a custom module.pull/2588/head
parent
eefd6e8336
commit
b8afde043c
|
@ -61,7 +61,7 @@ class SleeperThread {
|
||||||
auto sleep() {
|
auto sleep() {
|
||||||
std::unique_lock lk(mutex_);
|
std::unique_lock lk(mutex_);
|
||||||
CancellationGuard cancel_lock;
|
CancellationGuard cancel_lock;
|
||||||
return condvar_.wait(lk);
|
return condvar_.wait(lk, [this] { return signal_ || !do_run_; });
|
||||||
}
|
}
|
||||||
|
|
||||||
auto sleep_for(std::chrono::system_clock::duration dur) {
|
auto sleep_for(std::chrono::system_clock::duration dur) {
|
||||||
|
|
Loading…
Reference in New Issue