From 72cdd1e3d778057acfc89490cf7a7e9f5b95963e Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Fri, 17 Nov 2017 14:15:00 +0100 Subject: [PATCH] using steady_clock instead of system_clock --- fairmq/FairMQDevice.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fairmq/FairMQDevice.cxx b/fairmq/FairMQDevice.cxx index e3b918d7..2d18ee10 100644 --- a/fairmq/FairMQDevice.cxx +++ b/fairmq/FairMQDevice.cxx @@ -514,19 +514,19 @@ void FairMQDevice::RunWrapper() } else { + using Clock = std::chrono::steady_clock; + using TimeScale = std::chrono::microseconds; + const TimeScale::rep period = TimeScale::period::den / fRate; + const auto reftime = Clock::now(); while (CheckCurrentState(RUNNING) && ConditionalRun()) { - using TimeScale = std::chrono::microseconds; - static const auto reftime = std::chrono::system_clock::now(); if (fRate > 0.001) { - auto timeSinceRef = std::chrono::duration_cast(std::chrono::system_clock::now() - reftime); - auto timespan = timeSinceRef.count() - fLastTime; - TimeScale::rep period = static_cast(TimeScale::period::den) / fRate; + auto timespan = std::chrono::duration_cast(Clock::now() - reftime).count() - fLastTime; if (timespan < period) { TimeScale sleepfor(period - timespan); std::this_thread::sleep_for(sleepfor); } - fLastTime = std::chrono::duration_cast(std::chrono::system_clock::now() - reftime).count(); + fLastTime = std::chrono::duration_cast(Clock::now() - reftime).count(); } }