diff --git a/include/modules/meta/timer_module.hpp b/include/modules/meta/timer_module.hpp index f533174b..32395da6 100644 --- a/include/modules/meta/timer_module.hpp +++ b/include/modules/meta/timer_module.hpp @@ -21,16 +21,17 @@ namespace modules { void runner() { try { while (this->running()) { + this->sleep(m_interval); + + if (!this->running()) { + break; + } + std::unique_lock guard(this->m_updatelock); if (CAST_MOD(Impl)->update()) { this->broadcast(); } - - if (this->running()) { - guard.unlock(); - this->sleep(m_interval); - } } } catch (const exception& err) { this->halt(err.what());