From de376f6b93d8b2980b8d3cdda21c31f96fe54cab Mon Sep 17 00:00:00 2001 From: christianEQ Date: Wed, 24 Mar 2021 21:16:21 +0000 Subject: [PATCH] moved time thread code to end of beforeSleep Former-commit-id: ac1022c772c7357571829f24c87aa3dc2deade72 --- src/server.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 26bf59b79..97a29f1a3 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2514,12 +2514,6 @@ void beforeSleep(struct aeEventLoop *eventLoop) { serverAssert(g_pserver->repl_batch_offStart < 0); runAndPropogateToReplicas(processClients); - { - std::lock_guard lock(time_thread_mutex); - sleeping_threads++; - serverAssert(sleeping_threads <= cserver.cthreads); - } - /* Handle precise timeouts of blocked clients. */ handleBlockedClientsTimeout(); @@ -2651,6 +2645,13 @@ void beforeSleep(struct aeEventLoop *eventLoop) { locker.disarm(); if (!fSentReplies) handleClientsWithPendingWrites(iel, aof_state); + + { + std::lock_guard lock(time_thread_mutex); + sleeping_threads++; + serverAssert(sleeping_threads <= cserver.cthreads); + } + if (moduleCount()) moduleReleaseGIL(TRUE /*fServerThread*/); /* Do NOT add anything below moduleReleaseGIL !!! */