As noted in the comment, we had a chicken-and-the-egg problem with plugins and the event dispatchers: we need to destroy the event dispatcher when plugins are still loaded (otherwise we could and did crash) but we also wanted the QThreadData to exist when the plugins unload. The solution for that is to split the work: destroy the event dispatcher first, then unload pugins, then destroy the current thread's QThreadData. On ELF systems, this is guaranteed to work because we set the init_priority to call destroy_current_thread_data() to higher than QLibraryStore. In other systems, it's a best effort with dynamic libraries and not guaranteed at all with static builds (don't even report bugs). Fixes: QTBUG-134080 Fixes: QTBUG-133861 Task-number: QTBUG-132697 Task-number: QTBUG-102984 Task-number: QTBUG-132381 Pick-to: 6.9 6.9.0 6.8 Change-Id: Ifaa28bb87338f4117d51fffdf721da68c0762e5a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
…
…
Description
Languages
C++
84.3%
HTML
4.9%
C
3.9%
CMake
3.6%
Objective-C++
2%
Other
0.8%