From 9211d04730da7495fd2584e6768b73c3f86aba00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Thu, 25 Mar 2021 13:58:00 +0100 Subject: [PATCH] QSemaphore: move suspect increment of waiter count We might return false a few lines down, without decreasing the count. Change-Id: I0a90c07f279860987e41539e9d5f3b5d2cb15207 Reviewed-by: Thiago Macieira --- src/corelib/thread/qsemaphore.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/thread/qsemaphore.cpp b/src/corelib/thread/qsemaphore.cpp index ee4cee52811..5111d80ac6b 100644 --- a/src/corelib/thread/qsemaphore.cpp +++ b/src/corelib/thread/qsemaphore.cpp @@ -246,13 +246,13 @@ template bool futexSemaphoreTryAcquire(QBasicAtomicInteger> 32) == 0x7fffffff) return false; // overflow! + + // increase the waiter count + u.fetchAndAddRelaxed(oneWaiter); curValue += oneWaiter; // Also adjust nn to subtract oneWaiter when we succeed in acquiring.