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 !!! */