diff --git a/nano/node/unchecked_map.cpp b/nano/node/unchecked_map.cpp index e73d4546a..f36bcbbfa 100644 --- a/nano/node/unchecked_map.cpp +++ b/nano/node/unchecked_map.cpp @@ -63,8 +63,10 @@ size_t nano::unchecked_map::count (nano::transaction const & transaction) const void nano::unchecked_map::stop () { - if (!stopped.exchange (true)) + nano::unique_lock lock{ mutex }; + if (!stopped) { + stopped = true; condition.notify_all (); // Notify flush (), run () } } diff --git a/nano/node/unchecked_map.hpp b/nano/node/unchecked_map.hpp index a6523498f..76b882ee7 100644 --- a/nano/node/unchecked_map.hpp +++ b/nano/node/unchecked_map.hpp @@ -56,7 +56,7 @@ private: std::deque> buffer; std::deque> back_buffer; bool writing_back_buffer{ false }; - std::atomic stopped{ false }; + bool stopped{ false }; nano::condition_variable condition; nano::mutex mutex; std::thread thread;