diff --git a/src/main/java/org/cobbzilla/util/daemon/Await.java b/src/main/java/org/cobbzilla/util/daemon/Await.java index 489a0d0..ee2e588 100644 --- a/src/main/java/org/cobbzilla/util/daemon/Await.java +++ b/src/main/java/org/cobbzilla/util/daemon/Await.java @@ -170,7 +170,7 @@ public class Await { final AwaitResult result = new AwaitResult<>(); final Collection> awaiting = new ArrayList<>(futures); - while (clock.now() - start < timeout) { + while (true) { for (Iterator iter = awaiting.iterator(); iter.hasNext(); ) { final Future f = (Future) iter.next(); if (f.isDone()) { @@ -194,7 +194,8 @@ public class Await { log.warn("awaitAll: exception in sleepCallback: "+shortError(e)); } } - sleep(sleepTime, "awaitAll: awaiting tasks: "+awaiting.size()+"/"+futures.size()); + if (clock.now() - start < timeout) break; + if (sleepTime > 0) sleep(sleepTime, "awaitAll: awaiting tasks: "+awaiting.size()+"/"+futures.size()); } result.timeout(awaiting);