summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-13 23:00:33 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-13 23:00:33 +0200
commit4932df60a5ead7cdc58a236663a58afdd936fb1d (patch)
tree8d44f36c8bf86872d8547347ca955b2259e50fd9 /messagebus
parent0ca65c2cdcfd35325e2c99a52f3ca0997ca4a38c (diff)
Handle the reply in own thread too.
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);