aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-12 18:02:54 +0200
committerGitHub <noreply@github.com>2019-04-12 18:02:54 +0200
commit4b61dc2b0367ede6d7c99a40dfb996dc5330814b (patch)
treef5c7fcea4cb2c888b9d09f10e89c12c658a892d2 /messagebus
parent36e974a0e7e2f47777a49dfc05a15ed1b8ade9d9 (diff)
parent78f5ae0f3b644352f932357b4c1d17c4797f2d64 (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-xmessagebus/src/main/java/com/yahoo/messagebus/Messenger.java31
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);