diff options
-rw-r--r-- | src/net_processing.cpp | 2 | ||||
-rw-r--r-- | src/txorphanage.cpp | 5 | ||||
-rw-r--r-- | src/txorphanage.h | 4 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index d842dca95b..01effa9245 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1003,7 +1003,7 @@ void PeerManagerImpl::FinalizeNode(const CNode& node, bool& fUpdateConnectionTim for (const QueuedBlock& entry : state->vBlocksInFlight) { mapBlocksInFlight.erase(entry.hash); } - EraseOrphansFor(nodeid); + WITH_LOCK(g_cs_orphans, EraseOrphansFor(nodeid)); m_txrequest.DisconnectedPeer(nodeid); nPreferredDownload -= state->fPreferredDownload; nPeersWithValidatedDownloads -= (state->nBlocksInFlightValidHeaders != 0); diff --git a/src/txorphanage.cpp b/src/txorphanage.cpp index d418ed9323..c883aaa57f 100644 --- a/src/txorphanage.cpp +++ b/src/txorphanage.cpp @@ -55,7 +55,8 @@ int EraseOrphanTx(const uint256& txid) void EraseOrphansFor(NodeId peer) { - LOCK(g_cs_orphans); + AssertLockHeld(g_cs_orphans); + int nErased = 0; std::map<uint256, COrphanTx>::iterator iter = mapOrphanTransactions.begin(); while (iter != mapOrphanTransactions.end()) @@ -71,7 +72,7 @@ void EraseOrphansFor(NodeId peer) unsigned int LimitOrphanTxSize(unsigned int nMaxOrphans) { - LOCK(g_cs_orphans); + AssertLockHeld(g_cs_orphans); unsigned int nEvicted = 0; static int64_t nNextSweep; diff --git a/src/txorphanage.h b/src/txorphanage.h index 343f12c9c5..d8dfaec8a0 100644 --- a/src/txorphanage.h +++ b/src/txorphanage.h @@ -24,8 +24,8 @@ struct COrphanTx { }; int EraseOrphanTx(const uint256& txid) EXCLUSIVE_LOCKS_REQUIRED(g_cs_orphans); -void EraseOrphansFor(NodeId peer); -unsigned int LimitOrphanTxSize(unsigned int nMaxOrphans); +void EraseOrphansFor(NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(g_cs_orphans); +unsigned int LimitOrphanTxSize(unsigned int nMaxOrphans) EXCLUSIVE_LOCKS_REQUIRED(g_cs_orphans); /** Map from txid to orphan transaction record. Limited by * -maxorphantx/DEFAULT_MAX_ORPHAN_TRANSACTIONS */ |