summaryrefslogtreecommitdiffstats
path: root/fastos
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-11-15 09:03:12 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-11-15 09:03:12 +0000
commitc9ab2c9da725207783c8451b3ff456c36291f471 (patch)
treeddc85793872971111d0c8f4cc6e9bef75923b084 /fastos
parent37754e26c8f04eb5a0d130f65e44946726fa5490 (diff)
Use a steady_clock for the stop watch.
Diffstat (limited to 'fastos')
-rw-r--r--fastos/src/vespa/fastos/timestamp.cpp18
-rw-r--r--fastos/src/vespa/fastos/timestamp.h18
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;
-
}