MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / Stop

Method Stop

src/net.cpp:2423–2462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2421}
2422
2423void CConnman::Stop()
2424{
2425 if (threadMessageHandler.joinable())
2426 threadMessageHandler.join();
2427 if (threadOpenConnections.joinable())
2428 threadOpenConnections.join();
2429 if (threadOpenAddedConnections.joinable())
2430 threadOpenAddedConnections.join();
2431 if (threadDNSAddressSeed.joinable())
2432 threadDNSAddressSeed.join();
2433 if (threadSocketHandler.joinable())
2434 threadSocketHandler.join();
2435
2436 if (fAddressesInitialized)
2437 {
2438 DumpData();
2439 fAddressesInitialized = false;
2440 }
2441
2442 // Close sockets
2443 for (CNode* pnode : vNodes)
2444 pnode->CloseSocketDisconnect();
2445 for (ListenSocket& hListenSocket : vhListenSocket)
2446 if (hListenSocket.socket != INVALID_SOCKET)
2447 if (!CloseSocket(hListenSocket.socket))
2448 LogPrintf("CloseSocket(hListenSocket) failed with error %s\n", NetworkErrorString(WSAGetLastError()));
2449
2450 // clean up some globals (to help leak detection)
2451 for (CNode *pnode : vNodes) {
2452 DeleteNode(pnode);
2453 }
2454 for (CNode *pnode : vNodesDisconnected) {
2455 DeleteNode(pnode);
2456 }
2457 vNodes.clear();
2458 vNodesDisconnected.clear();
2459 vhListenSocket.clear();
2460 semOutbound.reset();
2461 semAddnode.reset();
2462}
2463
2464void CConnman::DeleteNode(CNode* pnode)
2465{

Callers

nothing calls this directly

Calls 6

CloseSocketFunction · 0.85
NetworkErrorStringFunction · 0.85
joinMethod · 0.80
CloseSocketDisconnectMethod · 0.80
clearMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected