[TD-6169]<fix>: windows dll client can not quit.

This commit is contained in:
afwerar 2021-08-21 21:25:56 +08:00
parent 97a3aeeb43
commit 8d7cb8f0c2
2 changed files with 2 additions and 4 deletions

View File

@ -199,10 +199,7 @@ void taos_init_imp(void) {
// In the APIs of other program language, taos_cleanup is not available yet. // 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. // So, to make sure taos_cleanup will be invoked to clean up the allocated resource to suppress the valgrind warning.
// But in the dll, the child thread will be killed before atexit takes effect.So taos_cleanup is not necessary.
#if !defined(TD_WINDOWS)
atexit(taos_cleanup); atexit(taos_cleanup);
#endif
tscDebug("client is initialized successfully"); tscDebug("client is initialized successfully");
} }

View File

@ -537,7 +537,8 @@ void taosCacheCleanup(SCacheObj *pCacheObj) {
pCacheObj->deleting = 1; pCacheObj->deleting = 1;
// wait for the refresh thread quit before destroying the cache object. // wait for the refresh thread quit before destroying the cache object.
while(atomic_load_8(&pCacheObj->deleting) != 0) { // 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++) {
taosMsleep(50); taosMsleep(50);
} }