Commit 9b01b644 authored by antirez's avatar antirez
Browse files

Modules TSC: put the client in the pending write list.

parent e67fb915
...@@ -3307,7 +3307,19 @@ void moduleHandleBlockedClients(void) { ...@@ -3307,7 +3307,19 @@ void moduleHandleBlockedClients(void) {
} }
freeClient(bc->reply_client); freeClient(bc->reply_client);
if (c != NULL) unblockClient(c); if (c != NULL) {
unblockClient(c);
/* Put the client in the list of clients that need to write
* if there are pending replies here. This is needed since
* during a non blocking command the client may receive output. */
if (clientHasPendingReplies(c) &&
!(c->flags & CLIENT_PENDING_WRITE))
{
c->flags |= CLIENT_PENDING_WRITE;
listAddNodeHead(server.clients_pending_write,c);
}
}
/* Free 'bc' only after unblocking the client, since it is /* Free 'bc' only after unblocking the client, since it is
* referenced in the client blocking context, and must be valid * referenced in the client blocking context, and must be valid
* when calling unblockClient(). */ * when calling unblockClient(). */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment