diff options
-rw-r--r-- | storage/src/vespa/storage/storageserver/rpc/shared_rpc_resources.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/storage/src/vespa/storage/storageserver/rpc/shared_rpc_resources.cpp b/storage/src/vespa/storage/storageserver/rpc/shared_rpc_resources.cpp index e1a2dc6b03c..7ad59ee574c 100644 --- a/storage/src/vespa/storage/storageserver/rpc/shared_rpc_resources.cpp +++ b/storage/src/vespa/storage/storageserver/rpc/shared_rpc_resources.cpp @@ -110,7 +110,12 @@ void SharedRpcResources::shutdown() { assert(!_shutdown); if (listen_port() > 0) { _slobrok_register->unregisterName(_handle); + // Give slobrok some time to dispatch unregister RPC + while (_slobrok_register->busy()) { + std::this_thread::sleep_for(10ms); + } } + _slobrok_register.reset(); // Implicitly kill any pending slobrok tasks prior to shutting down transport layer _transport->ShutDown(true); // FIXME need to reset to break weak_ptrs? But ShutDown should already sync pending resolves...! _shutdown = true; |