qt5base-lts/examples/corelib/threads
Giuseppe D'Angelo fddeec60cb Wait conditions example: fix an incorrect condition variable usage
3a449bbb69 amended the code to remove
acquiring a lock when waking up a condition variable. It is fine to
not have a lock associated when waking a condition variable; what I
misunderstood was the scope of the lock, which (and this underlines
the importance of commenting _what exactly_ a lock protects, for
each and ever lock) protected both the buffer as well as the counter
of the buffer. This made my reasoning flawed: it is necessary to keep
the lock while notifying, otherwise the counterpart could verify the
condition isn't satisfied and wait (e.g. see numUsedBytes==0), missing
the wake from the other thread (which could arrive between the check and
the wait).

Amends the previous commit.

Change-Id: If7db2d045331f1b33b976fb6bf6aa9117c41678f
Pick-to: 5.15 6.2 6.4 6.5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-12-28 15:10:40 +01:00
..
doc Wait conditions example: fix an incorrect condition variable usage 2022-12-28 15:10:40 +01:00
mandelbrot Examples: Use PRIVATE CMake linkage 2022-11-30 14:48:50 +01:00
queuedcustomtype Examples: Use PRIVATE CMake linkage 2022-11-30 14:48:50 +01:00
semaphores Remove useless Q_OBJECT in Semaphores example 2022-12-07 14:03:03 +01:00
waitconditions Wait conditions example: fix an incorrect condition variable usage 2022-12-28 15:10:40 +01:00
CMakeLists.txt Examples: Use Qt6:: to qualify Qt CMake packages 2022-11-17 19:59:11 +01:00
README Move Qt Core examples under a common subdirectory 2014-10-17 14:57:13 +02:00
threads.pro fix build and installation of queuedcustomtype example 2016-05-03 10:25:22 +00:00

This folder contains examples for the use of the threading-related classes
in Qt Core. For examples using the higher-level Qt Concurrent module,
check out the "qtconcurrent" folder instead.

Documentation for examples can be found via the Examples and Tutorials link
in the main Qt documentation. The examples and their documentation can also
be opened from the Examples tab of Qt Creator's Welcome mode.