diff options
author | HÃ¥kon Hallingstad <hakon@oath.com> | 2018-11-01 23:54:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-01 23:54:26 +0100 |
commit | 23f8367787ac42870bd49b2d633f7c8b872c2695 (patch) | |
tree | 1530fad281d4c47f48161fa55ba016a6375584ea /vespajlib | |
parent | 0af75e190d0dd2f245a63c9bd96175e0da21d056 (diff) |
Revert "Revert "Revert "Revert "Enforce CC timeouts in Orchestrator 4""""
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/time/TimeBudget.java | 12 |
1 files changed, 12 insertions, 0 deletions
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<Duration> timeLeft() { + return timeout.map(timeout -> timeout.minus(timePassed())); + } + + /** Returns the time left as a new TimeBudget. */ + public TimeBudget timeLeftAsTimeBudget() { + Instant now = clock.instant(); + Optional<Instant> 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)); } |