net: only disconnect if fDisconnect has been set
These conditions are problematic to check without locking, and we shouldn't be relying on the refcount to disconnect.
This commit is contained in:
parent
5b4a8ac6d6
commit
f6315e07f9
1 changed files with 1 additions and 2 deletions
|
@ -1051,8 +1051,7 @@ void CConnman::ThreadSocketHandler()
|
|||
std::vector<CNode*> vNodesCopy = vNodes;
|
||||
BOOST_FOREACH(CNode* pnode, vNodesCopy)
|
||||
{
|
||||
if (pnode->fDisconnect ||
|
||||
(pnode->GetRefCount() <= 0 && pnode->vRecvMsg.empty() && pnode->nSendSize == 0))
|
||||
if (pnode->fDisconnect)
|
||||
{
|
||||
// remove from vNodes
|
||||
vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end());
|
||||
|
|
Loading…
Reference in a new issue