diff --git a/src/rpc/src/rpcTcp.c b/src/rpc/src/rpcTcp.c index 5758a7c226984d293f8c9b4f7377afd027fef67e..affddf0520ed8945717f78704ba85126dbabad11 100644 --- a/src/rpc/src/rpcTcp.c +++ b/src/rpc/src/rpcTcp.c @@ -173,11 +173,11 @@ void *taosInitTcpServer(uint32_t ip, uint16_t port, char *label, int numOfThread static void taosStopTcpThread(SThreadObj* pThreadObj) { // save thread into local variable and signal thread to stop pthread_t thread = pThreadObj->thread; + pThreadObj->stop = true; if (taosComparePthread(thread, pthread_self())) { pthread_detach(pthread_self()); return; } - pThreadObj->stop = true; pthread_join(thread, NULL); } diff --git a/src/sync/src/taosTcpPool.c b/src/sync/src/taosTcpPool.c index 1784dc60b7c0d0a1a92ebe28d4e4aea1850e57c9..3be298934216ffd30bb17a2e1cb55a01a079079b 100644 --- a/src/sync/src/taosTcpPool.c +++ b/src/sync/src/taosTcpPool.c @@ -302,10 +302,10 @@ static SThreadObj *taosGetTcpThread(SPoolObj *pPool) { static void taosStopPoolThread(SThreadObj *pThread) { pthread_t thread = pThread->thread; + pThread->stop = true; if (taosComparePthread(thread, pthread_self())) { pthread_detach(pthread_self()); return; } - pThread->stop = true; pthread_join(thread, NULL); }