mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
Merge bitcoin/bitcoin#24099: Replace RecursiveMutex cs_mapLocalHost
with Mutex, and rename it
5e7e4c9f6e57f5333bd17a20b0c85a78d032998e refactor: replace RecursiveMutex g_maplocalhost_mutex with Mutex (w0xlt) a7da1409bc9f614009f76c1bfc55f029ff1265e4 scripted-diff: rename cs_mapLocalHost -> g_maplocalhost_mutex (w0xlt) Pull request description: This PR is related to #19303 and gets rid of the `RecursiveMutex cs_mapLocalHost`. ACKs for top commit: shaavan: ACK 5e7e4c9f6e57f5333bd17a20b0c85a78d032998e theStack: ACK 5e7e4c9f6e57f5333bd17a20b0c85a78d032998e hebasto: ACK 5e7e4c9f6e57f5333bd17a20b0c85a78d032998e, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 961171e346fe385e16db9830115a8096f4ca2499bbea11a08c02ca808638dfb63c434ab9d66392c71e85be6352c8a2b6a0054b5a61aaabd28d71581fed5beae7
This commit is contained in:
parent
67ca59ef50
commit
ba882e1200
22
src/net.cpp
22
src/net.cpp
@ -130,9 +130,9 @@ static const uint64_t RANDOMIZER_ID_LOCALHOSTNONCE = 0xd93e69e2bbfa5735ULL; // S
|
||||
//
|
||||
bool fDiscover = true;
|
||||
bool fListen = true;
|
||||
RecursiveMutex cs_mapLocalHost;
|
||||
std::map<CNetAddr, LocalServiceInfo> mapLocalHost GUARDED_BY(cs_mapLocalHost);
|
||||
static bool vfLimited[NET_MAX] GUARDED_BY(cs_mapLocalHost) = {};
|
||||
Mutex g_maplocalhost_mutex;
|
||||
std::map<CNetAddr, LocalServiceInfo> mapLocalHost GUARDED_BY(g_maplocalhost_mutex);
|
||||
static bool vfLimited[NET_MAX] GUARDED_BY(g_maplocalhost_mutex) = {};
|
||||
std::string strSubVersion;
|
||||
|
||||
void CConnman::AddOneShot(const std::string& strDest)
|
||||
@ -155,7 +155,7 @@ bool GetLocal(CService& addr, const CNetAddr *paddrPeer)
|
||||
int nBestScore = -1;
|
||||
int nBestReachability = -1;
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
for (const auto& entry : mapLocalHost)
|
||||
{
|
||||
int nScore = entry.second.nScore;
|
||||
@ -210,7 +210,7 @@ CAddress GetLocalAddress(const CNetAddr *paddrPeer, ServiceFlags nLocalServices)
|
||||
|
||||
static int GetnScore(const CService& addr)
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
const auto it = mapLocalHost.find(addr);
|
||||
return (it != mapLocalHost.end()) ? it->second.nScore : 0;
|
||||
}
|
||||
@ -265,7 +265,7 @@ bool AddLocal(const CService& addr, int nScore)
|
||||
LogPrintf("AddLocal(%s,%i)\n", addr.ToString(), nScore);
|
||||
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
const auto [it, is_newly_added] = mapLocalHost.emplace(addr, LocalServiceInfo());
|
||||
LocalServiceInfo &info = it->second;
|
||||
if (is_newly_added || nScore >= info.nScore) {
|
||||
@ -284,7 +284,7 @@ bool AddLocal(const CNetAddr &addr, int nScore)
|
||||
|
||||
void RemoveLocal(const CService& addr)
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
LogPrintf("RemoveLocal(%s)\n", addr.ToString());
|
||||
mapLocalHost.erase(addr);
|
||||
}
|
||||
@ -293,13 +293,13 @@ void SetReachable(enum Network net, bool reachable)
|
||||
{
|
||||
if (net == NET_UNROUTABLE || net == NET_INTERNAL)
|
||||
return;
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
vfLimited[net] = !reachable;
|
||||
}
|
||||
|
||||
bool IsReachable(enum Network net)
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
return !vfLimited[net];
|
||||
}
|
||||
|
||||
@ -311,7 +311,7 @@ bool IsReachable(const CNetAddr &addr)
|
||||
/** vote for a local address */
|
||||
bool SeenLocal(const CService& addr)
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
const auto it = mapLocalHost.find(addr);
|
||||
if (it == mapLocalHost.end()) return false;
|
||||
++it->second.nScore;
|
||||
@ -322,7 +322,7 @@ bool SeenLocal(const CService& addr)
|
||||
/** check whether a given address is potentially local */
|
||||
bool IsLocal(const CService& addr)
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
return mapLocalHost.count(addr) > 0;
|
||||
}
|
||||
|
||||
|
@ -781,8 +781,8 @@ struct LocalServiceInfo {
|
||||
uint16_t nPort;
|
||||
};
|
||||
|
||||
extern RecursiveMutex cs_mapLocalHost;
|
||||
extern std::map<CNetAddr, LocalServiceInfo> mapLocalHost GUARDED_BY(cs_mapLocalHost);
|
||||
extern Mutex g_maplocalhost_mutex;
|
||||
extern std::map<CNetAddr, LocalServiceInfo> mapLocalHost GUARDED_BY(g_maplocalhost_mutex);
|
||||
|
||||
extern const std::string NET_MESSAGE_COMMAND_OTHER;
|
||||
typedef std::map<std::string, uint64_t> mapMsgCmdSize; //command, total bytes
|
||||
|
@ -581,7 +581,7 @@ static UniValue getnetworkinfo(const JSONRPCRequest& request)
|
||||
obj.pushKV("incrementalfee", ValueFromAmount(::incrementalRelayFee.GetFeePerK()));
|
||||
UniValue localAddresses(UniValue::VARR);
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
for (const std::pair<const CNetAddr, LocalServiceInfo> &item : mapLocalHost)
|
||||
{
|
||||
UniValue rec(UniValue::VOBJ);
|
||||
|
@ -609,7 +609,7 @@ BOOST_AUTO_TEST_CASE(ipv4_peer_with_ipv6_addrMe_test)
|
||||
// that a normal IPv4 address is among the entries, but if this address is
|
||||
// !IsRoutable the undefined behavior is easier to trigger deterministically
|
||||
{
|
||||
LOCK(cs_mapLocalHost);
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
in_addr ipv4AddrLocal;
|
||||
ipv4AddrLocal.s_addr = 0x0100007f;
|
||||
CNetAddr addr = CNetAddr(ipv4AddrLocal);
|
||||
|
Loading…
Reference in New Issue
Block a user