mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-16 05:00:42 +02:00
Lock cs_vSend and cs_inventory in a consistent order even in TRY
This commit is contained in:
parent
1c2edd9f67
commit
fd13eca147
@ -1069,15 +1069,16 @@ void CConnman::ThreadSocketHandler()
|
|||||||
if (pnode->GetRefCount() <= 0)
|
if (pnode->GetRefCount() <= 0)
|
||||||
{
|
{
|
||||||
bool fDelete = false;
|
bool fDelete = false;
|
||||||
{
|
|
||||||
TRY_LOCK(pnode->cs_vSend, lockSend);
|
|
||||||
if (lockSend)
|
|
||||||
{
|
{
|
||||||
TRY_LOCK(pnode->cs_inventory, lockInv);
|
TRY_LOCK(pnode->cs_inventory, lockInv);
|
||||||
if (lockInv)
|
if (lockInv)
|
||||||
|
{
|
||||||
|
TRY_LOCK(pnode->cs_vSend, lockSend);
|
||||||
|
if (lockSend) {
|
||||||
fDelete = true;
|
fDelete = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (fDelete)
|
if (fDelete)
|
||||||
{
|
{
|
||||||
vNodesDisconnected.remove(pnode);
|
vNodesDisconnected.remove(pnode);
|
||||||
|
Loading…
Reference in New Issue
Block a user