From 440f0ec90ce2eb9824a652373d46790b1e8bde54 Mon Sep 17 00:00:00 2001 From: cryptocode <34946442+cryptocode@users.noreply.github.com> Date: Mon, 2 Apr 2018 19:28:29 +0200 Subject: [PATCH] Reorder lock/transaction to start tx only after successful lock (#773) --- rai/node/node.cpp | 4 ++-- rai/node/wallet.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rai/node/node.cpp b/rai/node/node.cpp index 74833010..a5eaa566 100644 --- a/rai/node/node.cpp +++ b/rai/node/node.cpp @@ -1698,8 +1698,8 @@ void rai::gap_cache::add (MDB_txn * transaction_a, std::shared_ptr b void rai::gap_cache::vote (std::shared_ptr vote_a) { - rai::transaction transaction (node.store.environment, nullptr, false); std::lock_guard lock (mutex); + rai::transaction transaction (node.store.environment, nullptr, false); auto hash (vote_a->block->hash ()); auto existing (blocks.get<1> ().find (hash)); if (existing != blocks.get<1> ().end ()) @@ -3041,8 +3041,8 @@ bool rai::election::vote (std::shared_ptr vote_a) void rai::active_transactions::announce_votes () { std::vector inactive; - rai::transaction transaction (node.store.environment, nullptr, true); std::lock_guard lock (mutex); + rai::transaction transaction (node.store.environment, nullptr, true); { size_t announcements (0); diff --git a/rai/node/wallet.cpp b/rai/node/wallet.cpp index ce51bc6f..e0bdf47f 100644 --- a/rai/node/wallet.cpp +++ b/rai/node/wallet.cpp @@ -716,8 +716,8 @@ node (node_a) void rai::wallet::enter_initial_password () { - rai::transaction transaction (store.environment, nullptr, true); std::lock_guard lock (store.mutex); + rai::transaction transaction (store.environment, nullptr, true); rai::raw_key password_l; store.password.value (password_l); if (password_l.data.is_zero ())