From 1251b6e381b048d752ec944576a2b4c28647b070 Mon Sep 17 00:00:00 2001 From: afwerar <1296468573@qq.com> Date: Mon, 23 Aug 2021 18:03:48 +0800 Subject: [PATCH] [TD-6169]: windows dll client can not quit. --- src/client/src/tscSystem.c | 2 ++ src/util/src/tcache.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSystem.c b/src/client/src/tscSystem.c index c04765b065..ad29b58660 100644 --- a/src/client/src/tscSystem.c +++ b/src/client/src/tscSystem.c @@ -199,7 +199,9 @@ void taos_init_imp(void) { // In the APIs of other program language, taos_cleanup is not available yet. // So, to make sure taos_cleanup will be invoked to clean up the allocated resource to suppress the valgrind warning. +#if !defined(TD_WINDOWS) atexit(taos_cleanup); +#endif tscDebug("client is initialized successfully"); } diff --git a/src/util/src/tcache.c b/src/util/src/tcache.c index aaa1d5ba9e..5f2acef2a5 100644 --- a/src/util/src/tcache.c +++ b/src/util/src/tcache.c @@ -538,7 +538,8 @@ void taosCacheCleanup(SCacheObj *pCacheObj) { // wait for the refresh thread quit before destroying the cache object. // But in the dll, the child thread will be killed before atexit takes effect.So here we only wait for one second. - for (int i = 0; i < 20&&atomic_load_8(&pCacheObj->deleting) != 0; i++) { + while(atomic_load_8(&pCacheObj->deleting)) { + // for (int i = 0; i < 20&&atomic_load_8(&pCacheObj->deleting) != 0; i++) { taosMsleep(50); } -- GitLab