}
/* Multibulk processing could see a <= 0 length. */
- if (c->argc > 0)
- processCommand(c);
- resetClient(c);
+ if (c->argc == 0) {
+ resetClient(c);
+ } else {
+ /* Only reset the client when the command was executed. */
+ if (processCommand(c) == REDIS_OK)
+ resetClient(c);
+ }
}
}
addReply(c,shared.queued);
} else {
if (server.vm_enabled && server.vm_max_threads > 0 &&
- blockClientOnSwappedKeys(c,cmd)) return 1;
+ blockClientOnSwappedKeys(c,cmd)) return REDIS_ERR;
call(c,cmd);
}
return REDIS_OK;