aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2018-02-22 22:16:54 +0100
committerpracticalswift <practicalswift@users.noreply.github.com>2018-07-21 19:46:04 +0200
commit01a06d66869054dc94ffc1c02515f27873087b90 (patch)
treeec7043396c90bf011e190bb4a54ae5d502de0d3f
parent07ce278455757fb46dab95fb9b97a3f6b1b84faf (diff)
Avoid locking mutexes that are already held by the same thread
-rw-r--r--src/txmempool.cpp2
-rw-r--r--src/txmempool.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/txmempool.cpp b/src/txmempool.cpp
index 8090172e3f..56f9f34c9b 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -542,7 +542,7 @@ void CTxMemPool::removeForReorg(const CCoinsViewCache *pcoins, unsigned int nMem
void CTxMemPool::removeConflicts(const CTransaction &tx)
{
// Remove transactions which depend on inputs of tx, recursively
- LOCK(cs);
+ AssertLockHeld(cs);
for (const CTxIn &txin : tx.vin) {
auto it = mapNextTx.find(txin.prevout);
if (it != mapNextTx.end()) {
diff --git a/src/txmempool.h b/src/txmempool.h
index ebfcf36e11..784d5453b2 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -544,7 +544,7 @@ public:
void removeRecursive(const CTransaction &tx, MemPoolRemovalReason reason = MemPoolRemovalReason::UNKNOWN);
void removeForReorg(const CCoinsViewCache *pcoins, unsigned int nMemPoolHeight, int flags);
- void removeConflicts(const CTransaction &tx);
+ void removeConflicts(const CTransaction &tx) EXCLUSIVE_LOCKS_REQUIRED(cs);
void removeForBlock(const std::vector<CTransactionRef>& vtx, unsigned int nBlockHeight);
void clear();