diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-12-20 14:21:50 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-12-20 14:21:50 +0000 |
commit | 586ee64209ecf9e6ec7fe3f18edc07b127941184 (patch) | |
tree | f9b2b63131d3930f0494cf203296351f42554080 | |
parent | Merge pull request #2134 (diff) | |
download | monero-586ee64209ecf9e6ec7fe3f18edc07b127941184.tar.xz |
simplewallet: lock idle scope in {im,ex}port_{key_images,outputs}
This ensures we can't get races
-rw-r--r-- | src/simplewallet/simplewallet.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 64e665fb3..a6406c1d5 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -6046,6 +6046,7 @@ bool simple_wallet::export_key_images(const std::vector<std::string> &args) try { + LOCK_IDLE_SCOPE(); if (!m_wallet->export_key_images(filename)) { fail_msg_writer() << tr("failed to save file ") << filename; @@ -6078,6 +6079,7 @@ bool simple_wallet::import_key_images(const std::vector<std::string> &args) } std::string filename = args[0]; + LOCK_IDLE_SCOPE(); try { uint64_t spent = 0, unspent = 0; @@ -6109,6 +6111,7 @@ bool simple_wallet::export_outputs(const std::vector<std::string> &args) if (m_wallet->ask_password() && !get_and_verify_password()) { return true; } std::string filename = args[0]; + LOCK_IDLE_SCOPE(); try { std::vector<tools::wallet2::transfer_details> outs = m_wallet->export_outputs(); @@ -6207,6 +6210,7 @@ bool simple_wallet::import_outputs(const std::vector<std::string> &args) boost::archive::binary_iarchive ar(iss); ar >> outputs; } + LOCK_IDLE_SCOPE(); size_t n_outputs = m_wallet->import_outputs(outputs); success_msg_writer() << boost::lexical_cast<std::string>(n_outputs) << " outputs imported"; } |