diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index 9ff0a779..f022ec80 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -190,10 +190,12 @@ void DhtProxyClient::stop() { if (not isDestroying_.exchange(true)) { + std::shared_ptr resolver; { std::lock_guard l(resolverLock_); - resolver_.reset(); + resolver = std::move(resolver_); } + resolver->cancel(); cancelAllListeners(); if (infoState_) infoState_->cancel = true;