fix catalog quit issue
This commit is contained in:
parent
dbe1d1462d
commit
39848d24f9
|
@ -1186,14 +1186,14 @@ void catalogDestroy(void) {
|
||||||
|
|
||||||
atomic_store_8((int8_t*)&gCtgMgmt.exit, true);
|
atomic_store_8((int8_t*)&gCtgMgmt.exit, true);
|
||||||
|
|
||||||
while (CTG_IS_LOCKED(&gCtgMgmt.lock)) {
|
|
||||||
taosUsleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tsem_post(&gCtgMgmt.queue.reqSem)) {
|
if (tsem_post(&gCtgMgmt.queue.reqSem)) {
|
||||||
qError("tsem_post failed, error:%s", tstrerror(TAOS_SYSTEM_ERROR(errno)));
|
qError("tsem_post failed, error:%s", tstrerror(TAOS_SYSTEM_ERROR(errno)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (CTG_IS_LOCKED(&gCtgMgmt.lock)) {
|
||||||
|
taosUsleep(1);
|
||||||
|
}
|
||||||
|
|
||||||
CTG_LOCK(CTG_WRITE, &gCtgMgmt.lock);
|
CTG_LOCK(CTG_WRITE, &gCtgMgmt.lock);
|
||||||
|
|
||||||
SCatalog *pCtg = NULL;
|
SCatalog *pCtg = NULL;
|
||||||
|
|
|
@ -1614,9 +1614,11 @@ void ctgUpdateThreadUnexpectedStopped(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ctgCleanupCacheQueue(void) {
|
void ctgCleanupCacheQueue(void) {
|
||||||
SCtgQNode *node = gCtgMgmt.queue.head->next;
|
SCtgQNode *node = NULL;
|
||||||
SCtgQNode *nodeNext = NULL;
|
SCtgQNode *nodeNext = NULL;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
node = gCtgMgmt.queue.head->next;
|
||||||
while (node) {
|
while (node) {
|
||||||
if (node->op) {
|
if (node->op) {
|
||||||
taosMemoryFree(node->op->data);
|
taosMemoryFree(node->op->data);
|
||||||
|
@ -1633,6 +1635,13 @@ void ctgCleanupCacheQueue(void) {
|
||||||
node = nodeNext;
|
node = nodeNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CTG_IS_LOCKED(&gCtgMgmt.lock)) {
|
||||||
|
taosUsleep(1);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
taosMemoryFreeClear(gCtgMgmt.queue.head);
|
taosMemoryFreeClear(gCtgMgmt.queue.head);
|
||||||
gCtgMgmt.queue.tail = NULL;
|
gCtgMgmt.queue.tail = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1652,6 +1661,7 @@ void* ctgUpdateThreadFunc(void* param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) {
|
if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) {
|
||||||
|
CTG_UNLOCK(CTG_READ, &gCtgMgmt.lock);
|
||||||
ctgCleanupCacheQueue();
|
ctgCleanupCacheQueue();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue