mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-29 05:22:30 +02:00
refactor: Avoid recursive locking in CAddrMan::Check
This commit is contained in:
parent
f77d9c79aa
commit
187b7d2bb3
@ -585,12 +585,10 @@ public:
|
|||||||
*/
|
*/
|
||||||
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network)
|
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network)
|
||||||
{
|
{
|
||||||
|
LOCK(cs);
|
||||||
Check();
|
Check();
|
||||||
std::vector<CAddress> vAddr;
|
std::vector<CAddress> vAddr;
|
||||||
{
|
GetAddr_(vAddr, max_addresses, max_pct, network);
|
||||||
LOCK(cs);
|
|
||||||
GetAddr_(vAddr, max_addresses, max_pct, network);
|
|
||||||
}
|
|
||||||
Check();
|
Check();
|
||||||
return vAddr;
|
return vAddr;
|
||||||
}
|
}
|
||||||
@ -714,9 +712,10 @@ private:
|
|||||||
|
|
||||||
//! Consistency check
|
//! Consistency check
|
||||||
void Check()
|
void Check()
|
||||||
|
EXCLUSIVE_LOCKS_REQUIRED(cs)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_ADDRMAN
|
#ifdef DEBUG_ADDRMAN
|
||||||
LOCK(cs);
|
AssertLockHeld(cs);
|
||||||
const int err = Check_();
|
const int err = Check_();
|
||||||
if (err) {
|
if (err) {
|
||||||
LogPrintf("ADDRMAN CONSISTENCY CHECK FAILED!!! err=%i\n", err);
|
LogPrintf("ADDRMAN CONSISTENCY CHECK FAILED!!! err=%i\n", err);
|
||||||
|
Loading…
Reference in New Issue
Block a user