diff options
author | MarcoFalke <falke.marco@gmail.com> | 2018-07-22 09:41:34 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2018-07-22 09:41:36 -0400 |
commit | 05714f96e4a63aa222cf7b233434de4a0b036d9d (patch) | |
tree | 41c93cda77b88bcb0173fc5b5d12b7c6829ecf78 | |
parent | 10b9a811b643d75a93a1cbe9abb0c3b62a52fea5 (diff) | |
parent | 01a06d66869054dc94ffc1c02515f27873087b90 (diff) |
Merge #11762: Avoid locking mutexes that are already held by the same thread
01a06d6686 Avoid locking mutexes that are already held by the same thread (practicalswift)
Pull request description:
Avoid locking mutexes that are already held by the same thread. These are reentrant mutexes, but still no need to lock them more than once per thread :-)
Tree-SHA512: e2fb85882e8800892fd8e8170f3c13128d6acfeb14d7b69fb9555f2b7ad0884fb201cf945b8144ffaf6fb1253c28af7c8c6c435319a7ae30ca003f28aa645a98
-rw-r--r-- | src/txmempool.cpp | 2 | ||||
-rw-r--r-- | src/txmempool.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/txmempool.cpp b/src/txmempool.cpp index 1db006ecd1..d579f131cd 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(); |