From d7bb1752ebae70e94a9e7d89e2a798e1641d6df0 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Tue, 26 Apr 2016 22:40:57 +0100 Subject: [PATCH] simplewallet: more threading fixes --- src/simplewallet/simplewallet.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) \