aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp b/searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp
index b9794bf6a75..d4ae635d760 100644
--- a/searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/rpc_hooks.cpp
@@ -241,10 +241,16 @@ RPCHooksBase::getProtonStatus(FRT_RPCRequest *req)
}
void
-RPCHooksBase::rpc_die(FRT_RPCRequest *)
+RPCHooksBase::rpc_die(FRT_RPCRequest * req)
{
LOG(debug, "RPCHooksBase::rpc_die");
- _exit(0);
+ req->Detach();
+ letProtonDo(makeLambdaTask([req]() {
+ LOG(debug, "Nap for 10ms and then quickly exit.");
+ req->Return();
+ std::this_thread::sleep_for(10ms);
+ std::quick_exit(0);
+ }));
}
void