tsdb/read: reseek with try lock mutex
This commit is contained in:
parent
f0e9656b62
commit
d69ec98723
|
@ -4068,18 +4068,23 @@ static int32_t tsdbSetQueryReseek(void* pQHandle) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
STsdbReader* pReader = pQHandle;
|
STsdbReader* pReader = pQHandle;
|
||||||
|
|
||||||
taosThreadMutexLock(&pReader->readerMutex);
|
code = taosThreadMutexTryLock(&pReader->readerMutex);
|
||||||
|
if (code == 0) {
|
||||||
|
if (pReader->suspended) {
|
||||||
|
taosThreadMutexUnlock(&pReader->readerMutex);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
tsdbReaderSuspend(pReader);
|
||||||
|
|
||||||
if (pReader->suspended) {
|
|
||||||
taosThreadMutexUnlock(&pReader->readerMutex);
|
taosThreadMutexUnlock(&pReader->readerMutex);
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
|
} else if (code == EBUSY) {
|
||||||
|
return TSDB_CODE_VND_QUERY_BUSY;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tsdbReaderSuspend(pReader);
|
|
||||||
|
|
||||||
taosThreadMutexUnlock(&pReader->readerMutex);
|
|
||||||
|
|
||||||
return code;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbReaderResume(STsdbReader* pReader) {
|
int32_t tsdbReaderResume(STsdbReader* pReader) {
|
||||||
|
|
Loading…
Reference in New Issue