From 7fb077ff2f3e6fa70f3d2afaf88eda17341ef66b Mon Sep 17 00:00:00 2001 From: John Sully Date: Tue, 29 Mar 2022 12:17:13 -0400 Subject: [PATCH] Fix issue with AE unlocking in beforeSleep --- src/server.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 53d6fadd8..d10dec038 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2926,12 +2926,14 @@ void beforeSleep(struct aeEventLoop *eventLoop) { std::unique_lock ul(g_lockasyncfree); if (listLength(g_pserver->clients_to_close)) { + ul.unlock(); locker.disarm(); handleClientsWithPendingWrites(iel, aof_state); locker.arm(); fSentReplies = true; + } else { + ul.unlock(); } - ul.unlock(); if (!serverTL->gcEpoch.isReset()) g_pserver->garbageCollector.endEpoch(serverTL->gcEpoch, true /*fNoFree*/);