You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by jl...@apache.org on 2017/09/06 21:05:21 UTC
hadoop git commit: HADOOP-14827. Allow StopWatch to accept a Timer
parameter for tests. Contributed by Erik Krogen
Repository: hadoop
Updated Branches:
refs/heads/trunk 704267cb4 -> dd814946f
HADOOP-14827. Allow StopWatch to accept a Timer parameter for tests. Contributed by Erik Krogen
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/dd814946
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/dd814946
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/dd814946
Branch: refs/heads/trunk
Commit: dd814946f68d52a9b1627ac4dd61f9ab093423ae
Parents: 704267c
Author: Jason Lowe <jl...@apache.org>
Authored: Wed Sep 6 16:04:30 2017 -0500
Committer: Jason Lowe <jl...@apache.org>
Committed: Wed Sep 6 16:04:30 2017 -0500
----------------------------------------------------------------------
.../java/org/apache/hadoop/util/StopWatch.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/dd814946/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StopWatch.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StopWatch.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StopWatch.java
index b9d0d0b..c0eedf6 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StopWatch.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StopWatch.java
@@ -25,11 +25,22 @@ import java.util.concurrent.TimeUnit;
* A simplified StopWatch implementation which can measure times in nanoseconds.
*/
public class StopWatch implements Closeable {
+ private final Timer timer;
private boolean isStarted;
private long startNanos;
private long currentElapsedNanos;
public StopWatch() {
+ this(new Timer());
+ }
+
+ /**
+ * Used for tests to be able to create a StopWatch which does not follow real
+ * time.
+ * @param timer The timer to base this StopWatch's timekeeping off of.
+ */
+ public StopWatch(Timer timer) {
+ this.timer = timer;
}
/**
@@ -49,7 +60,7 @@ public class StopWatch implements Closeable {
throw new IllegalStateException("StopWatch is already running");
}
isStarted = true;
- startNanos = System.nanoTime();
+ startNanos = timer.monotonicNowNanos();
return this;
}
@@ -61,7 +72,7 @@ public class StopWatch implements Closeable {
if (!isStarted) {
throw new IllegalStateException("StopWatch is already stopped");
}
- long now = System.nanoTime();
+ long now = timer.monotonicNowNanos();
isStarted = false;
currentElapsedNanos += now - startNanos;
return this;
@@ -90,7 +101,7 @@ public class StopWatch implements Closeable {
*/
public long now() {
return isStarted ?
- System.nanoTime() - startNanos + currentElapsedNanos :
+ timer.monotonicNowNanos() - startNanos + currentElapsedNanos :
currentElapsedNanos;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org