diff options
author | Salvatore Sanfilippo <antirez@gmail.com> | 2018-09-03 18:31:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-03 18:31:02 +0200 |
commit | 2b689ad641f19573b3b6141b45452da90ca32df4 (patch) | |
tree | ffb05f73b9d79de1abe641e940a749013bd8b405 | |
parent | 3e7349fdaf8cdbf96e595750034af43e6d6c56f0 (diff) | |
parent | 2290c4bee1904d4418fd1fa9192a3fbc13bf38b0 (diff) | |
download | redis-2b689ad641f19573b3b6141b45452da90ca32df4.tar.gz |
Merge pull request #4418 from soloestoy/fix-multiple-unblock
fix multiple unblock for clientsArePaused()
-rw-r--r-- | src/networking.c | 6 | ||||
-rw-r--r-- | src/scripting.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/networking.c b/src/networking.c index 8e55ec902..824d88245 100644 --- a/src/networking.c +++ b/src/networking.c @@ -2134,9 +2134,9 @@ int clientsArePaused(void) { while ((ln = listNext(&li)) != NULL) { c = listNodeValue(ln); - /* Don't touch slaves and blocked clients. The latter pending - * requests be processed when unblocked. */ - if (c->flags & (CLIENT_SLAVE|CLIENT_BLOCKED)) continue; + /* Don't touch slaves and blocked or unblocked clients. + * The latter pending requests be processed when unblocked. */ + if (c->flags & (CLIENT_SLAVE|CLIENT_BLOCKED|CLIENT_UNBLOCKED)) continue; c->flags |= CLIENT_UNBLOCKED; listAddNodeTail(server.unblocked_clients,c); } diff --git a/src/scripting.c b/src/scripting.c index 4b36a085b..6c311dbe0 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -1367,7 +1367,7 @@ void evalGenericCommand(client *c, int evalsha) { * script timeout was detected. */ aeCreateFileEvent(server.el,c->fd,AE_READABLE, readQueryFromClient,c); - if (server.masterhost && server.master) { + if (server.masterhost && server.master && !(server.master->flags & CLIENT_UNBLOCKED)) { server.master->flags |= CLIENT_UNBLOCKED; listAddNodeTail(server.unblocked_clients,server.master); } |