aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Towns <aj@erisian.com.au>2020-02-11 14:54:50 +1000
committerAnthony Towns <aj@erisian.com.au>2020-05-06 15:28:49 +1000
commitc3cf2f55013c4ea1c1ef4a878fc7ff8e92f2c42d (patch)
treec8e47395e31c661c43c198538dd927acadafa687
parentd96fdc2a396f4ca44d64d830b352469674f2845f (diff)
rpc/blockchain.cpp: Remove g_utxosetscan mutex that is only protecting a single atomic variable
-rw-r--r--src/rpc/blockchain.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index f7ccbae706..d43c22e4da 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -1976,7 +1976,6 @@ bool FindScriptPubKey(std::atomic<int>& scan_progress, const std::atomic<bool>&
}
/** RAII object to prevent concurrency issue when scanning the txout set */
-static std::mutex g_utxosetscan;
static std::atomic<int> g_scan_progress;
static std::atomic<bool> g_scan_in_progress;
static std::atomic<bool> g_should_abort_scan;
@@ -1989,18 +1988,15 @@ public:
bool reserve() {
CHECK_NONFATAL(!m_could_reserve);
- std::lock_guard<std::mutex> lock(g_utxosetscan);
- if (g_scan_in_progress) {
+ if (g_scan_in_progress.exchange(true)) {
return false;
}
- g_scan_in_progress = true;
m_could_reserve = true;
return true;
}
~CoinsViewScanReserver() {
if (m_could_reserve) {
- std::lock_guard<std::mutex> lock(g_utxosetscan);
g_scan_in_progress = false;
}
}