diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-12 18:02:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-12 18:02:54 +0200 |
commit | 4b61dc2b0367ede6d7c99a40dfb996dc5330814b (patch) | |
tree | f5c7fcea4cb2c888b9d09f10e89c12c658a892d2 /messagebus | |
parent | 36e974a0e7e2f47777a49dfc05a15ed1b8ade9d9 (diff) | |
parent | 78f5ae0f3b644352f932357b4c1d17c4797f2d64 (diff) |
Merge pull request #9115 from vespa-engine/balder/balder/reply-in-own-thread-only
Reply in own thread
Diffstat (limited to 'messagebus')
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/Messenger.java | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java index 2cb2f0967e5..7211e4cead0 100755 --- a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java @@ -78,7 +78,11 @@ public class Messenger implements Runnable { * @param handler The handler to return to. */ public void deliverReply(final Reply reply, final ReplyHandler handler) { - enqueue(new ReplyTask(reply, handler)); + if (destroyed.get()) { + reply.discard(); + } else { + handler.handleReply(reply); + } } /** @@ -208,31 +212,6 @@ public class Messenger implements Runnable { void destroy(); } - private static class ReplyTask implements Task { - - final ReplyHandler handler; - Reply reply; - - ReplyTask(final Reply reply, final ReplyHandler handler) { - this.reply = reply; - this.handler = handler; - } - - @Override - public void run() { - final Reply reply = this.reply; - this.reply = null; - handler.handleReply(reply); - } - - @Override - public void destroy() { - if (reply != null) { - reply.discard(); - } - } - } - private static class SyncTask implements Task { final CountDownLatch latch = new CountDownLatch(1); |