diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-01-07 17:45:05 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-01-07 17:45:05 +0100 |
commit | 9fc71f40683f0fd697d81c0dcd0eee9caca5df7d (patch) | |
tree | 2273925c39590b31d052587322604eb9718f88ca /vespaclient-core | |
parent | 455067e6412c27caa198f1d3e336872f7dd7ddd4 (diff) |
Allow for a Callback to complete early.
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-x | vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java index 79218ded26d..3971855ca64 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java @@ -76,12 +76,16 @@ public class SharedSender implements ReplyHandler { * @return true if there were no more pending, or false if the timeout expired. */ public boolean waitForPending(ResultCallback owner, long timeoutMs) { - try { - return getNonNullState(owner).waitPending(timeoutMs); - } catch (InterruptedException e) { + OwnerState state = activeOwners.get(owner); + if (state != null) { + try { + return state.waitPending(timeoutMs); + } catch (InterruptedException e) { + return false; + } } - return false; + return true; } private OwnerState getNonNullState(ResultCallback owner) { @@ -113,9 +117,12 @@ public class SharedSender implements ReplyHandler { * @param owner the file to check for pending documents */ public void waitForPending(ResultCallback owner) { - try { - getNonNullState(owner).waitPending(); - } catch (InterruptedException e) { } + OwnerState state = activeOwners.get(owner); + if (state != null) { + try { + state.waitPending(); + } catch (InterruptedException e) { } + } } /** @@ -143,7 +150,7 @@ public class SharedSender implements ReplyHandler { return; } - OwnerState state = getNonNullState(owner); + OwnerState state = activeOwners.get(owner); if (state == null) { state = new OwnerState(); activeOwners.put(owner, state); |