-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
-
ae5dd04b5 (6.9), b9a9f4dee (6.9), 13780cb96 (tqtc/lts-6.8), 218e91000 (tqtc/lts-6.8), bbf1d6cb9 (tqtc/lts-6.5), b2f359a0d (tqtc/lts-6.5), 3f61f7362 (dev), 02adcda48 (6.10), 6263dc513 (6.9), d6da02bba (tqtc/lts-6.8), 9695d6cab (tqtc/lts-6.5)
-
Foundation Sprint 131, Foundation Sprint 132, Foundation Sprint 133, Foundation Sprint 134, Foundation Sprint 135, Foundation Sprint 136, Foundation Sprint 137, Foundation Sprint 138
QBasicAtomic inherits the weird pre-C++20 initialization semantics from std::atomic. Cf. https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews#QBasicAtomic
Review and, where needed, fix QBasicAtomic* initialization:
- we must not call the default constructor
- better not even rely on zero-initialization, either (peppe thinks it may also be unsafe)
- use QAtomic* for non-static/thread-local variables default-constructed atomics
- otherwise, make sure the variables are initialized with Q_BASIC_ATOMIC_INITIALIZER