diff --git a/Modules/include/PeriodicTrigger.h b/Modules/include/PeriodicTrigger.h index f3185f859a9672224b99b43b2c9e6a32a9fe4587..631c3faca62584f0fb8493d53117bbffb4e98de1 100644 --- a/Modules/include/PeriodicTrigger.h +++ b/Modules/include/PeriodicTrigger.h @@ -26,13 +26,16 @@ namespace ChimeraTK { void mainLoop() { tick = 0; - if(timeout = 0) timeout = defaultTimeout_; - + std::chrono::time_point<std::chrono::steady_clock> t = std::chrono::steady_clock::now(); while(true) { timeout.read(); - t += static_cast<uint32_t>(timeout) * std::chrono::milliseconds(); + if(timeout == 0){ + // set receiving end of timeout. Will only be overwritten if there is new data. + timeout = defaultTimeout_; + } + t += std::chrono::milliseconds(static_cast<uint32_t>(timeout)); boost::this_thread::interruption_point(); std::this_thread::sleep_until(t);