diff --git a/src/fne/network/DiagNetwork.cpp b/src/fne/network/DiagNetwork.cpp index b8889a20..5629f797 100644 --- a/src/fne/network/DiagNetwork.cpp +++ b/src/fne/network/DiagNetwork.cpp @@ -161,6 +161,8 @@ void* DiagNetwork::threadedNetworkRx(void* arg) { NetPacketRequest* req = (NetPacketRequest*)arg; if (req != nullptr) { + ::pthread_detach(req->thread); + FNENetwork* network = req->network; if (req->length > 0) { uint32_t peerId = req->fneHeader.getPeerId(); diff --git a/src/fne/network/FNENetwork.cpp b/src/fne/network/FNENetwork.cpp index 1c28e77c..1bd7e3aa 100644 --- a/src/fne/network/FNENetwork.cpp +++ b/src/fne/network/FNENetwork.cpp @@ -319,6 +319,8 @@ void* FNENetwork::threadedNetworkRx(void* arg) { NetPacketRequest* req = (NetPacketRequest*)arg; if (req != nullptr) { + ::pthread_detach(req->thread); + uint64_t now = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); FNENetwork* network = req->network; @@ -1040,6 +1042,8 @@ void* FNENetwork::threadedACLUpdate(void* arg) { ACLUpdateRequest* req = (ACLUpdateRequest*)arg; if (req != nullptr) { + ::pthread_detach(req->thread); + LogInfoEx(LOG_NET, "PEER %u sending ACL list updates", req->peerId); req->network->writeWhitelistRIDs(req->peerId); @@ -1047,9 +1051,7 @@ void* FNENetwork::threadedACLUpdate(void* arg) req->network->writeTGIDs(req->peerId); req->network->writeDeactiveTGIDs(req->peerId); - uint32_t thread = req->thread; delete req; - ::pthread_exit(&thread); } return nullptr;