[TD-2471]<fix>: fix the bug during the removal of elements in trashcan.
This commit is contained in:
parent
696ee1d9df
commit
abb4a9a1d8
|
@ -547,13 +547,14 @@ void taosAddToTrashcan(SCacheObj *pCacheObj, SCacheDataNode *pNode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__cache_wr_lock(pCacheObj);
|
||||||
STrashElem *pElem = calloc(1, sizeof(STrashElem));
|
STrashElem *pElem = calloc(1, sizeof(STrashElem));
|
||||||
pElem->pData = pNode;
|
pElem->pData = pNode;
|
||||||
pElem->prev = NULL;
|
pElem->prev = NULL;
|
||||||
|
pElem->next = NULL;
|
||||||
pNode->inTrashcan = true;
|
pNode->inTrashcan = true;
|
||||||
pNode->pTNodeHeader = pElem;
|
pNode->pTNodeHeader = pElem;
|
||||||
|
|
||||||
__cache_wr_lock(pCacheObj);
|
|
||||||
pElem->next = pCacheObj->pTrash;
|
pElem->next = pCacheObj->pTrash;
|
||||||
if (pCacheObj->pTrash) {
|
if (pCacheObj->pTrash) {
|
||||||
pCacheObj->pTrash->prev = pElem;
|
pCacheObj->pTrash->prev = pElem;
|
||||||
|
@ -563,8 +564,8 @@ void taosAddToTrashcan(SCacheObj *pCacheObj, SCacheDataNode *pNode) {
|
||||||
pCacheObj->numOfElemsInTrash++;
|
pCacheObj->numOfElemsInTrash++;
|
||||||
__cache_unlock(pCacheObj);
|
__cache_unlock(pCacheObj);
|
||||||
|
|
||||||
uDebug("cache:%s key:%p, %p move to trashcan, pTrashElem:%p, numOfElem in trashcan:%d", pCacheObj->name,
|
uDebug("cache:%s key:%p, %p move to trashcan, pTrashElem:%p, numOfElem in trashcan:%d", pCacheObj->name, pNode->key,
|
||||||
pNode->key, pNode->data, pElem, pCacheObj->numOfElemsInTrash);
|
pNode->data, pElem, pCacheObj->numOfElemsInTrash);
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosTrashcanEmpty(SCacheObj *pCacheObj, bool force) {
|
void taosTrashcanEmpty(SCacheObj *pCacheObj, bool force) {
|
||||||
|
|
Loading…
Reference in New Issue