]> git.saurik.com Git - redis.git/commitdiff
Return ASAP from checkClientOutputBufferLimits() if c->reply_bytes is zero.
authorantirez <antirez@gmail.com>
Thu, 16 Feb 2012 11:20:56 +0000 (12:20 +0100)
committerantirez <antirez@gmail.com>
Thu, 16 Feb 2012 11:20:56 +0000 (12:20 +0100)
src/networking.c

index dab6bfd978059b56ff7c5d5e224fdeb59e93ae9e..d8fb81320a0e183b8ab655a205d4bb415a516166 100644 (file)
@@ -1329,7 +1329,7 @@ int checkClientOutputBufferLimits(redisClient *c) {
  * called from contexts where the client can't be freed safely, i.e. from the
  * lower level functions pushing data inside the client output buffers. */
 void asyncCloseClientOnOutputBufferLimitReached(redisClient *c) {
  * called from contexts where the client can't be freed safely, i.e. from the
  * lower level functions pushing data inside the client output buffers. */
 void asyncCloseClientOnOutputBufferLimitReached(redisClient *c) {
-    if (c->flags & REDIS_CLOSE_ASAP) return;
+    if (c->reply_bytes == 0 || c->flags & REDIS_CLOSE_ASAP) return;
     if (checkClientOutputBufferLimits(c)) {
         sds client = getClientInfoString(c);
 
     if (checkClientOutputBufferLimits(c)) {
         sds client = getClientInfoString(c);