diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 2348f6c0597..29d123e16bf 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -909,7 +909,7 @@ private: /** Determine whether or not a peer can request a transaction, and return it (or nullptr if not found or not allowed). */ CTransactionRef FindTxForGetData(const Peer& peer, const GenTxid& gtxid, const std::chrono::seconds mempool_req, const std::chrono::seconds now) - LOCKS_EXCLUDED(cs_main) EXCLUSIVE_LOCKS_REQUIRED(NetEventsInterface::g_msgproc_mutex); + EXCLUSIVE_LOCKS_REQUIRED(NetEventsInterface::g_msgproc_mutex); void ProcessGetData(CNode& pfrom, Peer& peer, const std::atomic& interruptMsgProc) EXCLUSIVE_LOCKS_REQUIRED(!m_most_recent_block_mutex, peer.m_getdata_requests_mutex, NetEventsInterface::g_msgproc_mutex) @@ -920,9 +920,9 @@ private: /** Relay map (txid or wtxid -> CTransactionRef) */ typedef std::map MapRelay; - MapRelay mapRelay GUARDED_BY(cs_main); + MapRelay mapRelay GUARDED_BY(NetEventsInterface::g_msgproc_mutex); /** Expiration-time ordered list of (expire time, relay map entry) pairs. */ - std::deque> g_relay_expiration GUARDED_BY(cs_main); + std::deque> g_relay_expiration GUARDED_BY(NetEventsInterface::g_msgproc_mutex); /** * When a peer sends us a valid block, instruct it to announce blocks to us @@ -2270,16 +2270,13 @@ CTransactionRef PeerManagerImpl::FindTxForGetData(const Peer& peer, const GenTxi } } - { - LOCK(cs_main); - // Otherwise, the transaction must have been announced recently. - if (Assume(peer.GetTxRelay())->m_recently_announced_invs.contains(gtxid.GetHash())) { - // If it was, it can be relayed from either the mempool... - if (txinfo.tx) return std::move(txinfo.tx); - // ... or the relay pool. - auto mi = mapRelay.find(gtxid.GetHash()); - if (mi != mapRelay.end()) return mi->second; - } + // Otherwise, the transaction must have been announced recently. + if (Assume(peer.GetTxRelay())->m_recently_announced_invs.contains(gtxid.GetHash())) { + // If it was, it can be relayed from either the mempool... + if (txinfo.tx) return std::move(txinfo.tx); + // ... or the relay pool. + auto mi = mapRelay.find(gtxid.GetHash()); + if (mi != mapRelay.end()) return mi->second; } return {};