fix(tsdb): fix invalid set.
This commit is contained in:
parent
d44dc5bbb2
commit
d1dbd03341
|
@ -4121,9 +4121,9 @@ void tsdbReaderClose2(STsdbReader* pReader) {
|
||||||
|
|
||||||
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
||||||
void* p = pReader->pReadSnap;
|
void* p = pReader->pReadSnap;
|
||||||
atomic_val_compare_exchange_ptr(pReader->pReadSnap, p, NULL);
|
if ((p == atomic_val_compare_exchange_ptr((void**)&pReader->pReadSnap, p, NULL)) && (p != NULL)) {
|
||||||
|
tsdbUntakeReadSnap2(pReader, p, true);
|
||||||
tsdbUntakeReadSnap2(pReader, p, true);
|
}
|
||||||
|
|
||||||
tsem_destroy(&pReader->resumeAfterSuspend);
|
tsem_destroy(&pReader->resumeAfterSuspend);
|
||||||
tsdbReleaseReader(pReader);
|
tsdbReleaseReader(pReader);
|
||||||
|
@ -4197,9 +4197,11 @@ int32_t tsdbReaderSuspend2(STsdbReader* pReader) {
|
||||||
doSuspendCurrentReader(pReader);
|
doSuspendCurrentReader(pReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure only release once
|
||||||
void* p = pReader->pReadSnap;
|
void* p = pReader->pReadSnap;
|
||||||
atomic_val_compare_exchange_ptr(pReader->pReadSnap, p, NULL);
|
if ((p == atomic_val_compare_exchange_ptr((void**)&pReader->pReadSnap, p, NULL)) && (p != NULL)) {
|
||||||
tsdbUntakeReadSnap2(pReader, p, false);
|
tsdbUntakeReadSnap2(pReader, p, false);
|
||||||
|
}
|
||||||
|
|
||||||
if (pReader->bFilesetDelimited) {
|
if (pReader->bFilesetDelimited) {
|
||||||
pReader->status.memTableMinKey = INT64_MAX;
|
pReader->status.memTableMinKey = INT64_MAX;
|
||||||
|
|
Loading…
Reference in New Issue