summaryrefslogtreecommitdiffstats
path: root/src/opengl/qopenglvertexarrayobject.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2025-02-25 16:33:00 -0300
committerThiago Macieira <thiago.macieira@intel.com>2025-03-13 12:52:48 -0700
commit2f169f9e0cbbb17c98d7e59213a0c35401b33ea4 (patch)
treea3369ad89d172924cd642c6f12e36d2750c98032 /src/opengl/qopenglvertexarrayobject.cpp
parent12c4cfb1b83103479623a28b905bb776c26401bd (diff)
QThread/Unix: split the destruction of the exiting thread's QThreadData
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 Change-Id: Ifaa28bb87338f4117d51fffdf721da68c0762e5a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 6763e25cbc16cf8c54ab9b1ef97030aab9bb0eec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 97b41af2a2e89c9b64a78246cba4778fd12a02f5)
Diffstat (limited to 'src/opengl/qopenglvertexarrayobject.cpp')
0 files changed, 0 insertions, 0 deletions