From 2fa083c82feb626f4ec261d50f73b8ed0f17192a Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 10 Sep 2024 19:03:27 +0800 Subject: [PATCH] opt transport --- source/libs/transport/src/transCli.c | 1 - source/libs/transport/src/transSvr.c | 16 +++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 803e50ce94..a0c7315fe7 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -2426,7 +2426,6 @@ static void destroyThrdObj(SCliThrd* pThrd) { taosMemoryFree(timer); } - (void)uv_loop_close(pThrd->loop); taosArrayDestroy(pThrd->timerList); taosMemoryFree(pThrd->loop); taosHashCleanup(pThrd->fqdn2ipCache); diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index 38c7edeeaf..3a597fe6ad 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -188,11 +188,13 @@ static void sendQuitToWorkThrd(SWorkThrd* pThrd); static int32_t addHandleToWorkloop(SWorkThrd* pThrd, char* pipeName); static int32_t addHandleToAcceptloop(void* arg); -#define SRV_RELEASE_UV(loop) \ - do { \ - (void)uv_walk(loop, uvWalkCb, NULL); \ - (void)uv_run(loop, UV_RUN_DEFAULT); \ - (void)uv_loop_close(loop); \ +#define SRV_RELEASE_UV(loop) \ + do { \ + if (loop && uv_loop_alive(loop)) { \ + (void)uv_walk(loop, uvWalkCb, NULL); \ + (void)uv_run(loop, UV_RUN_DEFAULT); \ + (void)uv_loop_close(loop); \ + } \ } while (0); #define ASYNC_ERR_JRET(thrd) \ @@ -1615,7 +1617,6 @@ void destroyWorkThrdObj(SWorkThrd* pThrd) { } transAsyncPoolDestroy(pThrd->asyncPool); uvWhiteListDestroy(pThrd->pWhiteList); - (void)uv_loop_close(pThrd->loop); taosMemoryFree(pThrd->loop); taosMemoryFree(pThrd); } @@ -1648,14 +1649,11 @@ void transCloseServer(void* arg) { (void)taosThreadJoin(srv->thread, NULL); SRV_RELEASE_UV(srv->loop); - (void)uv_loop_close(srv->loop); - for (int i = 0; i < srv->numOfThreads; i++) { destroyWorkThrd(srv->pThreadObj[i]); } } else { SRV_RELEASE_UV(srv->loop); - (void)uv_loop_close(srv->loop); } taosMemoryFree(srv->pThreadObj);