diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 021e79ed..9b6c57d3 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -82,8 +82,12 @@ typedef cryptonote::simple_wallet sw; m_auto_refresh_run.store(false, std::memory_order_relaxed); \ /* stop any background refresh, and take over */ \ m_wallet->stop(); \ - boost::unique_lock lock(m_auto_refresh_mutex); \ + m_auto_refresh_mutex.lock(); \ m_auto_refresh_cond.notify_one(); \ + m_auto_refresh_mutex.unlock(); \ + if (auto_refresh_run) \ + m_auto_refresh_thread.join(); \ + boost::unique_lock lock(m_auto_refresh_mutex); \ epee::misc_utils::auto_scope_leave_caller scope_exit_handler = epee::misc_utils::create_scope_leave_handler([&](){ \ m_auto_refresh_run.store(auto_refresh_run, std::memory_order_relaxed); \ if (auto_refresh_run) \