treat threadedNetworkRx and threadedACLUpdate with pthread_detach and ensure they will not retain resources waiting for a pthread_join that'll never happen;

pull/51/head
Bryan Biedenkapp 2 years ago
parent d38e8d00da
commit 92a5bbd580

@ -161,6 +161,8 @@ void* DiagNetwork::threadedNetworkRx(void* arg)
{ {
NetPacketRequest* req = (NetPacketRequest*)arg; NetPacketRequest* req = (NetPacketRequest*)arg;
if (req != nullptr) { if (req != nullptr) {
::pthread_detach(req->thread);
FNENetwork* network = req->network; FNENetwork* network = req->network;
if (req->length > 0) { if (req->length > 0) {
uint32_t peerId = req->fneHeader.getPeerId(); uint32_t peerId = req->fneHeader.getPeerId();

@ -319,6 +319,8 @@ void* FNENetwork::threadedNetworkRx(void* arg)
{ {
NetPacketRequest* req = (NetPacketRequest*)arg; NetPacketRequest* req = (NetPacketRequest*)arg;
if (req != nullptr) { if (req != nullptr) {
::pthread_detach(req->thread);
uint64_t now = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count(); uint64_t now = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
FNENetwork* network = req->network; FNENetwork* network = req->network;
@ -1040,6 +1042,8 @@ void* FNENetwork::threadedACLUpdate(void* arg)
{ {
ACLUpdateRequest* req = (ACLUpdateRequest*)arg; ACLUpdateRequest* req = (ACLUpdateRequest*)arg;
if (req != nullptr) { if (req != nullptr) {
::pthread_detach(req->thread);
LogInfoEx(LOG_NET, "PEER %u sending ACL list updates", req->peerId); LogInfoEx(LOG_NET, "PEER %u sending ACL list updates", req->peerId);
req->network->writeWhitelistRIDs(req->peerId); req->network->writeWhitelistRIDs(req->peerId);
@ -1047,9 +1051,7 @@ void* FNENetwork::threadedACLUpdate(void* arg)
req->network->writeTGIDs(req->peerId); req->network->writeTGIDs(req->peerId);
req->network->writeDeactiveTGIDs(req->peerId); req->network->writeDeactiveTGIDs(req->peerId);
uint32_t thread = req->thread;
delete req; delete req;
::pthread_exit(&thread);
} }
return nullptr; return nullptr;

Loading…
Cancel
Save

Powered by TurnKey Linux.