summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2019-04-30 15:59:23 +0200
committerantirez <antirez@gmail.com>2019-04-30 15:59:23 +0200
commita653a47653e15fbae16f6553b50304ea406f3b9c (patch)
tree7e2610a70257fc3d45a16b7dbb77a8db2b504245
parent8c3b6f36f595bdae9a7b1e1f6f39157c79ef68ec (diff)
downloadredis-threaded-io.tar.gz
Threaded IO: handleClientsWithPendingReadsUsingThreads top comment.threaded-io
-rw-r--r--src/networking.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/networking.c b/src/networking.c
index 651dbdb8a..6fec97605 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -2734,6 +2734,12 @@ int postponeClientRead(client *c) {
}
}
+/* When threaded I/O is also enabled for the reading + parsing side, the
+ * readable handler will just put normal clients into a queue of clients to
+ * process (instead of serving them synchronously). This function runs
+ * the queue using the I/O threads, and process them in order to accumulate
+ * the reads in the buffers, and also parse the first command available
+ * rendering it in the client structures. */
int handleClientsWithPendingReadsUsingThreads(void) {
if (!io_threads_active || !server.io_threads_do_reads) return 0;
int processed = listLength(server.clients_pending_read);