From 8b4a91004020c8fa2ff0bb38a89ff0f884b2fda2 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Fri, 25 Apr 2014 12:19:18 -0700 Subject: [PATCH] Fix timestamp timer not fired --- assignment-client/src/main.cpp | 2 -- domain-server/src/main.cpp | 2 -- interface/src/main.cpp | 1 - libraries/shared/src/SharedUtil.cpp | 25 ++++++++++--------------- libraries/shared/src/SharedUtil.h | 1 - 5 files changed, 10 insertions(+), 21 deletions(-) diff --git a/assignment-client/src/main.cpp b/assignment-client/src/main.cpp index 7132b5c38a..5e103cf767 100644 --- a/assignment-client/src/main.cpp +++ b/assignment-client/src/main.cpp @@ -17,8 +17,6 @@ #include "AssignmentClientMonitor.h" int main(int argc, char* argv[]) { - initialiseUsecTimestampNow(); - #ifndef WIN32 setvbuf(stdout, NULL, _IOLBF, 0); #endif diff --git a/domain-server/src/main.cpp b/domain-server/src/main.cpp index 871c16a215..1d9e837f0a 100644 --- a/domain-server/src/main.cpp +++ b/domain-server/src/main.cpp @@ -23,8 +23,6 @@ #include "DomainServer.h" int main(int argc, char* argv[]) { - initialiseUsecTimestampNow(); - #ifndef WIN32 setvbuf(stdout, NULL, _IOLBF, 0); #endif diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 6f9dc5e3bd..2bb0633f24 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -16,7 +16,6 @@ #include int main(int argc, const char * argv[]) { - initialiseUsecTimestampNow(); QElapsedTimer startupTime; startupTime.start(); diff --git a/libraries/shared/src/SharedUtil.cpp b/libraries/shared/src/SharedUtil.cpp index bbb73cae4c..c65b7505ee 100644 --- a/libraries/shared/src/SharedUtil.cpp +++ b/libraries/shared/src/SharedUtil.cpp @@ -30,27 +30,22 @@ #include "OctalCode.h" #include "SharedUtil.h" - -static qint64 TIME_REFERENCE = 0; // in usec -static QElapsedTimer timestampTimer; static int usecTimestampNowAdjust = 0; // in usec - -void initialiseUsecTimestampNow() { - static bool initialised = false; - if (initialised) { - qDebug() << "[WARNING] Double initialisation of usecTimestampNow()."; - return; - } - - TIME_REFERENCE = QDateTime::currentMSecsSinceEpoch() * 1000; // ms to usec - initialised = true; -} - void usecTimestampNowForceClockSkew(int clockSkew) { ::usecTimestampNowAdjust = clockSkew; } quint64 usecTimestampNow() { + static bool usecTimestampNowIsInitialized = false; + static qint64 TIME_REFERENCE = 0; // in usec + static QElapsedTimer timestampTimer; + + if (!usecTimestampNowIsInitialized) { + TIME_REFERENCE = QDateTime::currentMSecsSinceEpoch() * 1000; // ms to usec + timestampTimer.start(); + usecTimestampNowIsInitialized = true; + } + // usec nsec to usec usec return TIME_REFERENCE + timestampTimer.nsecsElapsed() / 1000 + ::usecTimestampNowAdjust; } diff --git a/libraries/shared/src/SharedUtil.h b/libraries/shared/src/SharedUtil.h index 54d599070d..4a3fe2a129 100644 --- a/libraries/shared/src/SharedUtil.h +++ b/libraries/shared/src/SharedUtil.h @@ -60,7 +60,6 @@ static const quint64 USECS_PER_SECOND = USECS_PER_MSEC * MSECS_PER_SECOND; const int BITS_IN_BYTE = 8; -void initialiseUsecTimestampNow(); quint64 usecTimestampNow(); void usecTimestampNowForceClockSkew(int clockSkew);