[TD-15] sdb may crash while received close signal

This commit is contained in:
slguan 2020-03-24 15:34:22 +08:00
parent 6d35e62081
commit c541d35462
1 changed files with 7 additions and 5 deletions

View File

@ -722,18 +722,20 @@ int32_t sdbUpdateRow(SSdbOperDesc *pOper) {
void sdbCloseTable(void *handle) {
SSdbTable *pTable = (SSdbTable *)handle;
void * pNode = NULL;
void * row;
if (pTable == NULL) return;
while (1) {
pNode = sdbFetchRow(handle, pNode, &row);
if (row == NULL) break;
SRowMeta * pMeta;
pNode = (*sdbFetchRowFp[pTable->keyType])(pTable->iHandle, pNode, (void **)&pMeta);
if (pMeta == NULL) break;
SSdbOperDesc oper = {
.pObj = pMeta->row,
.table = pTable,
.rowData = row,
.version = pMeta->version,
};
(*pTable->destroyFp)(&oper);
}