8069269: (spec) Defect in the System.nanoTime spec
authorbpb
Mon, 26 Jan 2015 17:16:57 -0800
changeset 28668 a5b9168af1bb
parent 28667 2245cc40bf5d
child 28669 2d793a61b830
8069269: (spec) Defect in the System.nanoTime spec Summary: Change the description of how to compare two nanoTime values. Reviewed-by: martin
jdk/src/java.base/share/classes/java/lang/System.java
--- a/jdk/src/java.base/share/classes/java/lang/System.java	Mon Jan 26 17:26:49 2015 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/System.java	Mon Jan 26 17:16:57 2015 -0800
@@ -376,19 +376,16 @@
      * the difference between two such values, obtained within the same
      * instance of a Java virtual machine, is computed.
      *
-     * <p> For example, to measure how long some code takes to execute:
-     *  <pre> {@code
+     * <p>For example, to measure how long some code takes to execute:
+     * <pre> {@code
      * long startTime = System.nanoTime();
      * // ... the code being measured ...
-     * long estimatedTime = System.nanoTime() - startTime;}</pre>
+     * long elapsedNanos = System.nanoTime() - startTime;}</pre>
      *
-     * <p>To compare two nanoTime values
-     *  <pre> {@code
-     * long t0 = System.nanoTime();
-     * ...
-     * long t1 = System.nanoTime();}</pre>
-     *
-     * one should use {@code t1 - t0 < 0}, not {@code t1 < t0},
+     * <p>To compare elapsed time against a timeout, use <pre> {@code
+     * if (System.nanoTime() - startTime >= timeoutNanos) ...}</pre>
+     * instead of <pre> {@code
+     * if (System.nanoTime() >= startTime + timeoutNanos) ...}</pre>
      * because of the possibility of numerical overflow.
      *
      * @return the current value of the running Java Virtual Machine's