[net] Change addr send times fields to be guarded by new mutex

This commit is contained in:
John Newbery 2021-03-29 11:36:19 +01:00
parent c02fa47baa
commit 4ad4abcf07
2 changed files with 6 additions and 2 deletions

View File

@ -548,8 +548,9 @@ public:
std::vector<CAddress> vAddrToSend;
std::unique_ptr<CRollingBloomFilter> m_addr_known{nullptr};
bool fGetAddr{false};
std::chrono::microseconds m_next_addr_send GUARDED_BY(cs_sendProcessing){0};
std::chrono::microseconds m_next_local_addr_send GUARDED_BY(cs_sendProcessing){0};
Mutex m_addr_send_times_mutex;
std::chrono::microseconds m_next_addr_send GUARDED_BY(m_addr_send_times_mutex){0};
std::chrono::microseconds m_next_local_addr_send GUARDED_BY(m_addr_send_times_mutex){0};
struct TxRelay {
mutable RecursiveMutex cs_filter;

View File

@ -4189,6 +4189,8 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
CNodeState &state = *State(pto->GetId());
// Address refresh broadcast
{
LOCK(pto->m_addr_send_times_mutex);
if (fListen && pto->RelayAddrsWithConn() &&
!m_chainman.ActiveChainstate().IsInitialBlockDownload() &&
@ -4249,6 +4251,7 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
if (pto->vAddrToSend.capacity() > 40)
pto->vAddrToSend.shrink_to_fit();
}
} // pto->m_addr_send_times_mutex
// Start block sync
if (pindexBestHeader == nullptr)