From 23f8367787ac42870bd49b2d633f7c8b872c2695 Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Thu, 1 Nov 2018 23:54:26 +0100 Subject: Revert "Revert "Revert "Revert "Enforce CC timeouts in Orchestrator 4"""" --- vespajlib/src/main/java/com/yahoo/time/TimeBudget.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'vespajlib') diff --git a/vespajlib/src/main/java/com/yahoo/time/TimeBudget.java b/vespajlib/src/main/java/com/yahoo/time/TimeBudget.java index a7963df0208..449b0d6bd05 100644 --- a/vespajlib/src/main/java/com/yahoo/time/TimeBudget.java +++ b/vespajlib/src/main/java/com/yahoo/time/TimeBudget.java @@ -66,6 +66,18 @@ public class TimeBudget { }); } + /** Returns the time left, possibly negative if the deadline has passed. */ + public Optional timeLeft() { + return timeout.map(timeout -> timeout.minus(timePassed())); + } + + /** Returns the time left as a new TimeBudget. */ + public TimeBudget timeLeftAsTimeBudget() { + Instant now = clock.instant(); + Optional deadline = deadline(); + return new TimeBudget(clock, now, deadline.map(d -> Duration.between(now, d))); + } + private static Duration nonNegativeBetween(Instant start, Instant end) { return makeNonNegative(Duration.between(start, end)); } -- cgit v1.2.3