diff options
author | antirez <antirez@gmail.com> | 2020-04-17 16:27:29 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2020-04-17 16:27:29 +0200 |
commit | 7cb97aa6a431a641f871a4fe8a7a98f92c20bf4e (patch) | |
tree | 1be57dfd99c8d392539cf482a8a10ad92750ee47 | |
parent | c479eace4512193bcfe3dcab3ab238486f6f9405 (diff) | |
download | redis-7cb97aa6a431a641f871a4fe8a7a98f92c20bf4e.tar.gz |
Move handleClientsBlockedOnKeys() outside processCommand().
In preparation for further changes. The idea is that what happens
in handleClientsBlockedOnKeys() is an "out of context" thing that
should not see server.current_client set to anything special.
-rw-r--r-- | src/networking.c | 5 | ||||
-rw-r--r-- | src/server.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/networking.c b/src/networking.c index 8f3d79170..c8f8b65ce 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1701,6 +1701,11 @@ int processCommandAndResetClient(client *c) { } if (server.current_client == NULL) deadclient = 1; server.current_client = NULL; + + /* Process clients blocked on keys, it is possible that the command + * we just executed made certain keys ready. */ + if (listLength(server.ready_keys)) handleClientsBlockedOnKeys(); + /* freeMemoryIfNeeded may flush slave output buffers. This may * result into a slave, that may be the active client, to be * freed. */ diff --git a/src/server.c b/src/server.c index fc9b87aae..e02b1b93e 100644 --- a/src/server.c +++ b/src/server.c @@ -3600,8 +3600,6 @@ int processCommand(client *c) { } else { call(c,CMD_CALL_FULL); c->woff = server.master_repl_offset; - if (listLength(server.ready_keys)) - handleClientsBlockedOnKeys(); } return C_OK; } |