diff --git a/src/main/java/net/schmizz/concurrent/Promise.java b/src/main/java/net/schmizz/concurrent/Promise.java index 1f6b6154..b3c452fb 100644 --- a/src/main/java/net/schmizz/concurrent/Promise.java +++ b/src/main/java/net/schmizz/concurrent/Promise.java @@ -162,11 +162,14 @@ public class Promise { if (val != null) return val; log.debug("Awaiting <<{}>>", name); - while (val == null && pendingEx == null) - if (timeout == 0) + if (timeout == 0) { + while (val == null && pendingEx == null) { cond.await(); - else if (!cond.await(timeout, unit)) + } + } else { + if (!cond.await(timeout, unit)) return null; + } if (pendingEx != null) { log.error("<<{}>> woke to: {}", name, pendingEx.toString()); throw pendingEx;