aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2022-01-17 08:50:36 +0100
committerMarcoFalke <falke.marco@gmail.com>2022-01-17 08:50:40 +0100
commitdbf81a73e37141f86a65a0f96ff0f740f74ec045 (patch)
tree01ef5e20a2f68c37a596c4950cc047d6363dc03b
parent92a71f65be7bf084ff30fe6712d5edaf1ed83364 (diff)
parent30927cb5306d01da2716786c2d9457c49ec49d0f (diff)
Merge bitcoin/bitcoin#24079: refactor: replace RecursiveMutex `cs_SubVer` with Mutex (and rename)
30927cb5306d01da2716786c2d9457c49ec49d0f refactor: replace RecursiveMutex `m_subver_mutex` with Mutex (Sebastian Falbesoner) 0639aba42ad8449fe43eb2aad0ffbe3390aabd37 scripted-diff: rename `cs_SubVer` -> `m_subver_mutex` (Sebastian Falbesoner) Pull request description: This PR is related to #19303 and gets rid of the RecursiveMutex `cs_SubVer`. Both of the critical sections only directly access the guarded variable, i.e. it is not possible that within one section another one is called, and we can use a regular Mutex. ACKs for top commit: hebasto: ACK 30927cb5306d01da2716786c2d9457c49ec49d0f, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 2faead792ea0b2f79f9f7fe99acde5cf2bfcd2f15c51fbb6cb1099d4f81276001a492f7d46a5139055f4366c2d58a36a8ba19f21d56df20e0ed93af3141dbe11
-rw-r--r--src/net.cpp2
-rw-r--r--src/net.h4
-rw-r--r--src/net_processing.cpp2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 89a4aee5d9..7b8a87f90c 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -595,7 +595,7 @@ void CNode::CopyStats(CNodeStats& stats)
X(m_addr_name);
X(nVersion);
{
- LOCK(cs_SubVer);
+ LOCK(m_subver_mutex);
X(cleanSubVer);
}
stats.fInbound = IsInboundConn();
diff --git a/src/net.h b/src/net.h
index 80fc93a5d0..c79abb91c3 100644
--- a/src/net.h
+++ b/src/net.h
@@ -434,12 +434,12 @@ public:
//! Whether this peer is an inbound onion, i.e. connected via our Tor onion service.
const bool m_inbound_onion;
std::atomic<int> nVersion{0};
- RecursiveMutex cs_SubVer;
+ Mutex m_subver_mutex;
/**
* cleanSubVer is a sanitized string of the user agent byte array we read
* from the wire. This cleaned string can safely be logged or displayed.
*/
- std::string cleanSubVer GUARDED_BY(cs_SubVer){};
+ std::string cleanSubVer GUARDED_BY(m_subver_mutex){};
bool m_prefer_evict{false}; // This peer is preferred for eviction.
bool HasPermission(NetPermissionFlags permission) const {
return NetPermissions::HasFlag(m_permissionFlags, permission);
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 5bff29c097..273cb4fccb 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -2636,7 +2636,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
pfrom.nServices = nServices;
pfrom.SetAddrLocal(addrMe);
{
- LOCK(pfrom.cs_SubVer);
+ LOCK(pfrom.m_subver_mutex);
pfrom.cleanSubVer = cleanSubVer;
}
peer->m_starting_height = starting_height;