diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index 5f4e99f38d6cbb3d901d41a87b4b150b615aa79e..ab7b86cd2409be09682a4c0d2d2764aea242683e 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -725,10 +725,10 @@ DhtProxyClient::onProxyInfos(const Json::Value& proxyInfos, const sa_family_t fa listenerRestartTimer_->async_wait(std::bind(&DhtProxyClient::restartListeners, this, std::placeholders::_1)); if (not onConnectCallbacks_.empty()) { std::lock_guard<std::mutex> lock(lockCallbacks_); - callbacks_.emplace_back([this] { - while (not onConnectCallbacks_.empty()) { - auto cb = std::move(onConnectCallbacks_.front()); - onConnectCallbacks_.pop(); + callbacks_.emplace_back([cbs = std::move(onConnectCallbacks_)]() mutable { + while (not cbs.empty()) { + auto cb = std::move(cbs.front()); + cbs.pop(); cb(); } });