diff --git a/tools/dhtnode.cpp b/tools/dhtnode.cpp index a29495fb479f4bd3e1655d0cebb92da0216c246e..add30dc23b823de64e96b94fdf33cbfa46639d4a 100644 --- a/tools/dhtnode.cpp +++ b/tools/dhtnode.cpp @@ -578,15 +578,19 @@ main(int argc, char **argv) std::mutex m; bool done {false}; - node->shutdown([&]() - { - done = true; + node->shutdown([&]() { + { + std::lock_guard<std::mutex> lk(m); + done = true; + } cv.notify_all(); }); // wait for shutdown - std::unique_lock<std::mutex> lk(m); - cv.wait(lk, [&](){ return done; }); + { + std::unique_lock<std::mutex> lk(m); + cv.wait(lk, [&](){ return done; }); + } node->join(); #ifdef WIN32_NATIVE