This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 1d6f811b6e88b5956ef83811b18840f611f2aa7f
Author: Michael Blow <[email protected]>
AuthorDate: Mon May 25 08:58:48 2020 -0400

    [NO ISSUE][*HYR] Span enhancements
    
    - add reset() to start the span over again
    - add sleep() to sleep for the remainder of the span
    
    Change-Id: I93799354f2e238b759d2ef11aed109ec96baaf21
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/6483
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Michael Blow <[email protected]>
    Reviewed-by: Hussain Towaileb <[email protected]>
---
 .../src/main/java/org/apache/hyracks/util/Span.java | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
index 183cb6f..bc33e6d 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
@@ -21,18 +21,26 @@ package org.apache.hyracks.util;
 import java.util.concurrent.TimeUnit;
 
 public class Span {
-    private final long startNanos;
     private final long spanNanos;
+    private volatile long startNanos;
 
     private Span(long span, TimeUnit unit) {
-        startNanos = System.nanoTime();
         spanNanos = unit.toNanos(span);
+        reset();
+    }
+
+    public void reset() {
+        startNanos = System.nanoTime();
     }
 
     public long getSpanNanos() {
         return spanNanos;
     }
 
+    public long getSpan(TimeUnit unit) {
+        return unit.convert(spanNanos, TimeUnit.NANOSECONDS);
+    }
+
     public static Span start(long span, TimeUnit unit) {
         return new Span(span, unit);
     }
@@ -46,6 +54,15 @@ public class Span {
     }
 
     /**
+     * Sleep for the remainder of this span
+     *
+     * @throws InterruptedException
+     */
+    public void sleep() throws InterruptedException {
+        TimeUnit.NANOSECONDS.sleep(remaining(TimeUnit.NANOSECONDS));
+    }
+
+    /**
      * Sleep for the minimum of the duration or the remaining of this span
      *
      * @param sleep

Reply via email to