diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-09-26 15:38:39 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-09-26 15:38:39 +0200 |
commit | 743d839774dd6e66608b325055f8180a47ee2069 (patch) | |
tree | 22224c59aa1b21ac14e31c8794cd4d88262451df /messagebus/src | |
parent | a4f2e431feb8090a33981cd7a2c49137a06d38ef (diff) |
Use threadpool also for RequestDone
Diffstat (limited to 'messagebus/src')
-rw-r--r-- | messagebus/src/vespa/messagebus/network/rpcsend.cpp | 5 | ||||
-rw-r--r-- | messagebus/src/vespa/messagebus/network/rpcsend.h | 1 |
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, |