Qt Base (Core, Gui, Widgets, Network, ...)
Go to file
Thiago Macieira 1ed0dd88a3 QThread/Unix: make QThreadPrivate::finish() be called much later
We need it to run after all the thread-local destructors have run, to
ensure that some user code hasn't run after QThreadPrivate::finish() has
finished. We achieve that by making it get called from a thread-local
destructor itself, in the form of a qScopeGuard.

This ought to have been done since C++11 thread_local with non-trivial
destructors became available. However, it only started showing up after
commit 4a93285b16 began using thread_local
inside Qt itself. The visible symptom was that QThreadPrivate::finish()
had already destroyed the thread's event dispatcher, but some user code
ran later and expected it to still exist (or, worse, recreated it, via
QEventLoop → QThreadData::ensureEventDispatcher).

Fixes: QTBUG-117996
Pick-to: 6.7
Change-Id: I8f3ce163ccc5408cac39fffd178d682e5bfa6955
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2024-05-07 14:22:27 -07:00
.github/workflows
LICENSES SQLite: Update identified license 2024-04-28 12:14:17 +02:00
bin cmake: Override generator for iOS projects to Xcode in qt-cmake.in 2024-03-18 22:34:48 +01:00
cmake Prefer the versioned targets over the namespaceless one when collecting deps 2024-05-07 12:13:41 +02:00
coin CMake: Allow configuring a minimal subset of examples to deploy 2024-03-19 18:22:16 +01:00
config.tests Correct license in config.test 2024-02-20 16:22:28 +01:00
dist Remove dist/README 2024-02-29 15:35:57 +01:00
doc Doc: Add more global macros for product names 2024-05-06 18:01:24 +02:00
examples Remove check for Qt version > 4 that's not useful now 2024-04-24 18:46:34 +02:00
lib
libexec CMake: Allow building all examples as standalone just like tests 2024-03-14 11:44:16 +01:00
mkspecs Add preliminary support for Qt for visionOS 2024-04-18 05:00:57 +02:00
qmake QMake: Fix generation of Visual Studio filter files 2024-04-19 12:47:42 +02:00
src QThread/Unix: make QThreadPrivate::finish() be called much later 2024-05-07 14:22:27 -07:00
tests QThread/Unix: make QThreadPrivate::finish() be called much later 2024-05-07 14:22:27 -07:00
util Break out timezone data from cldr2qtimezone.py 2024-05-06 20:27:41 +02:00
.cmake.conf Add preliminary support for Qt for visionOS 2024-04-18 05:00:57 +02:00
.gitattributes
.gitignore Git ignore Visual Studio CMake build directories 2023-11-24 23:42:05 +01:00
.lgtm.yml
.tag
CMakeLists.txt cmake: add _extra_files IDE target from heuristics 2024-04-12 08:36:01 +08:00
config_help.txt Add support for using an inline namespaces for -qtnamespace 2024-04-03 17:17:11 +02:00
configure Change configure license 2024-02-02 15:23:02 +00:00
configure.bat configure.bat: Fix errors on Windows 2024-03-05 11:56:24 +01:00
configure.cmake Make version_tagging the full-functional feature 2024-05-07 12:10:22 +02:00
dependencies.yaml
licenseRule.json Add license exception 2024-04-24 19:02:09 +02:00
qt_cmdline.cmake Remove superfluous entries from qt_cmdline.cmake 2024-05-03 18:42:37 +02:00