diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-11-15 09:03:12 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-11-15 09:03:12 +0000 |
commit | c9ab2c9da725207783c8451b3ff456c36291f471 (patch) | |
tree | ddc85793872971111d0c8f4cc6e9bef75923b084 /fastos | |
parent | 37754e26c8f04eb5a0d130f65e44946726fa5490 (diff) |
Use a steady_clock for the stop watch.
Diffstat (limited to 'fastos')
-rw-r--r-- | fastos/src/vespa/fastos/timestamp.cpp | 18 | ||||
-rw-r--r-- | fastos/src/vespa/fastos/timestamp.h | 18 |
2 files changed, 24 insertions, 12 deletions
diff --git a/fastos/src/vespa/fastos/timestamp.cpp b/fastos/src/vespa/fastos/timestamp.cpp index bc865448e5a..553d44ac59b 100644 --- a/fastos/src/vespa/fastos/timestamp.cpp +++ b/fastos/src/vespa/fastos/timestamp.cpp @@ -46,4 +46,22 @@ time_t time() { return system_clock::to_time_t(system_clock::now()); } +namespace { + +TimeStamp steady_now() { + return duration_cast<nanoseconds>(steady_clock::now().time_since_epoch()).count(); +} + +} +void +StopWatch::start() { + _startTime = steady_now(); + _stopTime = _startTime; +} + +void +StopWatch::stop() { + _stopTime = steady_now(); +} + } diff --git a/fastos/src/vespa/fastos/timestamp.h b/fastos/src/vespa/fastos/timestamp.h index fd46d200b52..6df83457258 100644 --- a/fastos/src/vespa/fastos/timestamp.h +++ b/fastos/src/vespa/fastos/timestamp.h @@ -59,23 +59,21 @@ class ClockSystem { public: static int64_t now(); - static int64_t adjustTick2Sec(int64_t tick) { return tick; } }; -template <typename ClockT> -class StopWatchT : public ClockT +class StopWatch { public: - StopWatchT(void) : _startTime(), _stopTime() { } + StopWatch() : _startTime(), _stopTime() { } - void start() { _startTime = this->now(); _stopTime = _startTime; } - void stop() { _stopTime = this->now(); } + void start(); + void stop(); - TimeStamp startTime() const { return this->adjustTick2Sec(_startTime); } + TimeStamp startTime() const { return _startTime; } TimeStamp elapsed() const { TimeStamp diff(_stopTime - _startTime); - return this->adjustTick2Sec((diff > 0) ? diff : TimeStamp(0)); + return (diff > 0) ? diff : TimeStamp(0); } private: TimeStamp _startTime; @@ -84,9 +82,5 @@ private: time_t time(); - -typedef StopWatchT<ClockSystem> TickStopWatch; -typedef TickStopWatch StopWatch; - } |