POLYBAR_NS namespace modules { // public {{{ template void timer_module::start() { CAST_MOD(Impl)->m_mainthread = thread(&timer_module::runner, this); } // }}} // protected {{{ template void timer_module::runner() { try { while (CONST_MOD(Impl).running()) { std::lock_guard guard(this->m_lock); { if (CAST_MOD(Impl)->update()) CAST_MOD(Impl)->broadcast(); } CAST_MOD(Impl)->sleep(m_interval); } } catch (const module_error& err) { CAST_MOD(Impl)->halt(err.what()); } catch (const std::exception& err) { CAST_MOD(Impl)->halt(err.what()); } } // }}} } POLYBAR_NS_END