lazyfree: fix memory leak for lazyfree-lazy-server-del

This commit is contained in:
zhaozhao.zz 2018-01-15 00:45:37 +08:00
parent 238c9bd086
commit 0517ab8397

View File

@ -64,9 +64,10 @@ int dbAsyncDelete(redisDb *db, robj *key) {
robj *val = dictGetVal(de);
size_t free_effort = lazyfreeGetFreeEffort(val);
/* If releasing the object is too much work, let's put it into the
* lazy free list. */
if (free_effort > LAZYFREE_THRESHOLD) {
/* If releasing the object is too much work and the refcount
* is 1, that means the object really needs to be freed,
* let's put it into the lazy free list. */
if (free_effort > LAZYFREE_THRESHOLD && val->refcount == 1) {
atomicIncr(lazyfree_objects,1);
bioCreateBackgroundJob(BIO_LAZY_FREE,val,NULL,NULL);
dictSetVal(db->dict,de,NULL);