summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-12 17:48:27 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-12 17:48:27 +0200
commit78f5ae0f3b644352f932357b4c1d17c4797f2d64 (patch)
tree8e4365fe81babb15cbdb9fe71177b078c21d3eee /messagebus
parentaa24d7828140ceaeb2e73aa78fdf12d3cad8e1bb (diff)
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);