From 63bb6cb41991f8eadc20d305ea19dfb2778663c1 Mon Sep 17 00:00:00 2001 From: Muhammad Zahalqa Date: Sat, 13 Jun 2020 20:14:51 +0300 Subject: [PATCH] Fix bug in condition_variabe.wait usage consition variable wait should always be called with a locked mutex. This code break the pre-conditions of using wait. Former-commit-id: 5b81303f04580010f043e518a109b43971a63054 --- src/ae.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ae.cpp b/src/ae.cpp index 5d306d980..1e81cbb4e 100644 --- a/src/ae.cpp +++ b/src/ae.cpp @@ -258,7 +258,7 @@ int aeCreateRemoteFileEvent(aeEventLoop *eventLoop, int fd, int mask, if (fSynchronous) { - std::unique_lock ulock(cmd.pctl->mutexcv, std::defer_lock); + std::unique_lock ulock(cmd.pctl->mutexcv); cmd.pctl->cv.wait(ulock); ret = cmd.pctl->rval; delete cmd.pctl; @@ -311,7 +311,7 @@ int aePostFunction(aeEventLoop *eventLoop, std::function fn, bool fSynch int ret = AE_OK; if (fSynchronous) { - std::unique_lock ulock(cmd.pctl->mutexcv, std::defer_lock); + std::unique_lock ulock(cmd.pctl->mutexcv); cmd.pctl->cv.wait(ulock); ret = cmd.pctl->rval; delete cmd.pctl;