summaryrefslogtreecommitdiffstats
path: root/vespaclient-core
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-01-12 13:14:41 +0000
committerArne H Juul <arnej@yahoo-inc.com>2017-01-12 13:41:07 +0000
commit636b8de120c40124f086ec5a130ac55ceba87b0a (patch)
treeb08fb2e82735cb93bbea643b7c1693b4d25e1b8f /vespaclient-core
parentd433b1cd3fdad87f4fab647eeb7e564159ab768d (diff)
add back waiting on shutdown()
* add a global pending replies counter * wait for all outstanding replies on shutdown
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java8
1 files changed, 7 insertions, 1 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 a29693aee1c..6d089abf0b4 100755
--- a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java
+++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java
@@ -24,6 +24,7 @@ public class SharedSender implements ReplyHandler {
private SendSession sender;
private RouteMetricSet metrics;
+ private Pending globalPending = new Pending();
/**
* Creates a new shared sender.
@@ -46,7 +47,10 @@ public class SharedSender implements ReplyHandler {
}
public void shutdown() {
- // XXX may need to wait here?
+ try {
+ globalPending.waitForZero();
+ } catch (InterruptedException e) {
+ }
sender.close();
}
@@ -116,6 +120,7 @@ public class SharedSender implements ReplyHandler {
msg.setContext(owner);
owner.getPending().inc();
+ globalPending.inc();
try {
com.yahoo.messagebus.Result r = sender.send(msg, blockingQueue);
@@ -138,6 +143,7 @@ public class SharedSender implements ReplyHandler {
*/
@Override
public void handleReply(Reply r) {
+ globalPending.dec();
ResultCallback owner = (ResultCallback) r.getContext();
if (owner != null) {