summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorjian liang <jianliang79@gmail.com>2013-03-21 15:24:36 (GMT)
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-16 10:39:09 (GMT)
commitbd42c14963f1434eb8ca7ba2a432a2f9f970f80a (patch)
tree5164d40b30f7d9c9b5596b61994fcd7122200c14 /src/corelib
parent96a7596a904529b1ceabf3552aab2a280c19fbd3 (diff)
downloadQt-bd42c14963f1434eb8ca7ba2a432a2f9f970f80a.zip
Qt-bd42c14963f1434eb8ca7ba2a432a2f9f970f80a.tar.gz
Qt-bd42c14963f1434eb8ca7ba2a432a2f9f970f80a.tar.bz2
Make sure QThreadData and QAdoptedThread object is destroyed at app exit
Task-number: QTBUG-30134 Restore the lines in qcoreapplication.cpp removed by commit 950b35cf97ad398f97883efd2a18ee97994a8a9c to ensure QThreadData and QAdoptedThread object of main thread is destroyed at application exit. We don't set QCoreApplicationPriavte::theMainThread to 0 as before since it will be set to zero in QThreadData::~QThreadData() Cherry-picked from qtbase/7dc622290bb8e81af634034f443e25be0d6d48a3. Change-Id: I6bc62235d0aff7818ca9a9cad45625b2777afc55 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index 8ed8f56..0bf26ad 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -373,6 +373,13 @@ struct QCoreApplicationData {
#ifndef QT_NO_LIBRARY
delete app_libpaths;
#endif
+#ifndef QT_NO_QOBJECT
+ // cleanup the QAdoptedThread created for the main() thread
+ if (QCoreApplicationPrivate::theMainThread) {
+ QThreadData *data = QThreadData::get2(QCoreApplicationPrivate::theMainThread);
+ data->deref(); // deletes the data and the adopted thread
+ }
+#endif
}
#ifdef Q_OS_BLACKBERRY