aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-09-26 15:38:39 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-09-26 15:38:39 +0200
commit743d839774dd6e66608b325055f8180a47ee2069 (patch)
tree22224c59aa1b21ac14e31c8794cd4d88262451df /messagebus
parenta4f2e431feb8090a33981cd7a2c49137a06d38ef (diff)
Use threadpool also for RequestDone
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/vespa/messagebus/network/rpcsend.cpp5
-rw-r--r--messagebus/src/vespa/messagebus/network/rpcsend.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/messagebus/src/vespa/messagebus/network/rpcsend.cpp b/messagebus/src/vespa/messagebus/network/rpcsend.cpp
index 35a0005712b..244c14e8d75 100644
--- a/messagebus/src/vespa/messagebus/network/rpcsend.cpp
+++ b/messagebus/src/vespa/messagebus/network/rpcsend.cpp
@@ -147,6 +147,11 @@ RPCSend::send(RoutingNode &recipient, const vespalib::Version &version,
void
RPCSend::RequestDone(FRT_RPCRequest *req)
{
+ _net->getExecutor().execute(vespalib::makeLambdaTask([this, req]() { doRequestDone(req);}));
+}
+
+void
+RPCSend::doRequestDone(FRT_RPCRequest *req) {
SendContext::UP ctx(static_cast<SendContext*>(req->GetContext()._value.VOIDP));
const string &serviceName = static_cast<RPCServiceAddress&>(ctx->getRecipient().getServiceAddress()).getServiceName();
Reply::UP reply;
diff --git a/messagebus/src/vespa/messagebus/network/rpcsend.h b/messagebus/src/vespa/messagebus/network/rpcsend.h
index 5002a3914f8..d1d720803ec 100644
--- a/messagebus/src/vespa/messagebus/network/rpcsend.h
+++ b/messagebus/src/vespa/messagebus/network/rpcsend.h
@@ -83,6 +83,7 @@ public:
void invoke(FRT_RPCRequest *req);
private:
void doRequest(FRT_RPCRequest *req);
+ void doRequestDone(FRT_RPCRequest *req);
void attach(RPCNetwork &net) final override;
void handleDiscard(Context ctx) final override;
void sendByHandover(RoutingNode &recipient, const vespalib::Version &version,