fix(tsdb): fix race condition.
This commit is contained in:
parent
56eac88349
commit
d44dc5bbb2
|
@ -4120,8 +4120,10 @@ void tsdbReaderClose2(STsdbReader* pReader) {
|
|||
taosMemoryFreeClear(pReader->status.uidList.tableUidList);
|
||||
|
||||
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
||||
tsdbUntakeReadSnap2(pReader, pReader->pReadSnap, true);
|
||||
pReader->pReadSnap = NULL;
|
||||
void* p = pReader->pReadSnap;
|
||||
atomic_val_compare_exchange_ptr(pReader->pReadSnap, p, NULL);
|
||||
|
||||
tsdbUntakeReadSnap2(pReader, p, true);
|
||||
|
||||
tsem_destroy(&pReader->resumeAfterSuspend);
|
||||
tsdbReleaseReader(pReader);
|
||||
|
@ -4195,8 +4197,10 @@ int32_t tsdbReaderSuspend2(STsdbReader* pReader) {
|
|||
doSuspendCurrentReader(pReader);
|
||||
}
|
||||
|
||||
tsdbUntakeReadSnap2(pReader, pReader->pReadSnap, false);
|
||||
pReader->pReadSnap = NULL;
|
||||
void* p = pReader->pReadSnap;
|
||||
atomic_val_compare_exchange_ptr(pReader->pReadSnap, p, NULL);
|
||||
tsdbUntakeReadSnap2(pReader, p, false);
|
||||
|
||||
if (pReader->bFilesetDelimited) {
|
||||
pReader->status.memTableMinKey = INT64_MAX;
|
||||
pReader->status.memTableMaxKey = INT64_MIN;
|
||||
|
|
Loading…
Reference in New Issue