fix race condition
This commit is contained in:
parent
7aa159440c
commit
7b00bab1e4
|
@ -899,7 +899,6 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow
|
||||||
STsdbCfg *pCfg = &pRepo->config;
|
STsdbCfg *pCfg = &pRepo->config;
|
||||||
|
|
||||||
if (tsdbGetTableLastKeyImpl(pTable) < dataRowKey(row)) {
|
if (tsdbGetTableLastKeyImpl(pTable) < dataRowKey(row)) {
|
||||||
pTable->lastKey = dataRowKey(row);
|
|
||||||
if (pCfg->cacheLastRow || pTable->lastRow != NULL) {
|
if (pCfg->cacheLastRow || pTable->lastRow != NULL) {
|
||||||
SDataRow nrow = pTable->lastRow;
|
SDataRow nrow = pTable->lastRow;
|
||||||
if (taosTSizeof(nrow) < dataRowLen(row)) {
|
if (taosTSizeof(nrow) < dataRowLen(row)) {
|
||||||
|
@ -912,14 +911,18 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow
|
||||||
|
|
||||||
dataRowCpy(nrow, row);
|
dataRowCpy(nrow, row);
|
||||||
TSDB_WLOCK_TABLE(pTable);
|
TSDB_WLOCK_TABLE(pTable);
|
||||||
|
pTable->lastKey = dataRowKey(row);
|
||||||
pTable->lastRow = nrow;
|
pTable->lastRow = nrow;
|
||||||
TSDB_WUNLOCK_TABLE(pTable);
|
TSDB_WUNLOCK_TABLE(pTable);
|
||||||
taosTZfree(orow);
|
taosTZfree(orow);
|
||||||
} else {
|
} else {
|
||||||
TSDB_WLOCK_TABLE(pTable);
|
TSDB_WLOCK_TABLE(pTable);
|
||||||
|
pTable->lastKey = dataRowKey(row);
|
||||||
dataRowCpy(nrow, row);
|
dataRowCpy(nrow, row);
|
||||||
TSDB_WUNLOCK_TABLE(pTable);
|
TSDB_WUNLOCK_TABLE(pTable);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
pTable->lastKey = dataRowKey(row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue