Changeset View
Changeset View
Standalone View
Standalone View
src/net.cpp
Show First 20 Lines • Show All 1,884 Lines • ▼ Show 20 Lines | |||||
void CConnman::ThreadOpenAddedConnections() { | void CConnman::ThreadOpenAddedConnections() { | ||||
while (true) { | while (true) { | ||||
CSemaphoreGrant grant(*semAddnode); | CSemaphoreGrant grant(*semAddnode); | ||||
std::vector<AddedNodeInfo> vInfo = GetAddedNodeInfo(); | std::vector<AddedNodeInfo> vInfo = GetAddedNodeInfo(); | ||||
bool tried = false; | bool tried = false; | ||||
for (const AddedNodeInfo &info : vInfo) { | for (const AddedNodeInfo &info : vInfo) { | ||||
if (!info.fConnected) { | if (!info.fConnected) { | ||||
if (!grant.TryAcquire()) { | if (!grant.TryAcquire()) { | ||||
// If we've used up our semaphore and need a new one, lets | // If we've used up our semaphore and need a new one, let's | ||||
// not wait here since while we are waiting the | // not wait here since while we are waiting the | ||||
// addednodeinfo state might change. | // addednodeinfo state might change. | ||||
break; | break; | ||||
} | } | ||||
tried = true; | tried = true; | ||||
CAddress addr(CService(), NODE_NONE); | CAddress addr(CService(), NODE_NONE); | ||||
OpenNetworkConnection(addr, false, &grant, | OpenNetworkConnection(addr, false, &grant, | ||||
info.strAddedNode.c_str(), false, false, | info.strAddedNode.c_str(), false, false, | ||||
▲ Show 20 Lines • Show All 966 Lines • Show Last 20 Lines |