Only check REDIS_FREEING when a callback was executed

This commit is contained in:
Pieter Noordhuis 2010-12-28 19:35:26 +01:00
parent e3776bfaa6
commit c882a3621a

12
async.c
View File

@ -246,15 +246,15 @@ void redisProcessCallbacks(redisAsyncContext *ac) {
assert(__redisShiftCallback(&ac->replies,&cb) == REDIS_OK);
if (cb.fn != NULL) {
cb.fn(ac,reply,cb.privdata);
/* Proceed with free'ing when redisAsyncFree() was called. */
if (c->flags & REDIS_FREEING) {
__redisAsyncFree(ac);
return;
}
} else {
c->fn->freeObject(reply);
}
/* Proceed with free'ing when redisAsyncFree() was called. */
if (c->flags & REDIS_FREEING) {
__redisAsyncFree(ac);
return;
}
}
/* Disconnect when there was an error reading the reply */