summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qthread_unix.cpp
diff options
context:
space:
mode:
authorMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-10 11:58:49 (GMT)
committerMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-10 11:58:49 (GMT)
commit1be834f942b9658733d0f69a8d10a35d3c4988cb (patch)
tree7873983d75ffc181afb192b3a0f77f921069b6ff /src/corelib/thread/qthread_unix.cpp
parentc7ddb3e5801118fb23a42272c16c660ba3bdb570 (diff)
parent7604f8087f88171ef933d8ae08f501467e647338 (diff)
downloadQt-1be834f942b9658733d0f69a8d10a35d3c4988cb.zip
Qt-1be834f942b9658733d0f69a8d10a35d3c4988cb.tar.gz
Qt-1be834f942b9658733d0f69a8d10a35d3c4988cb.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-public
Diffstat (limited to 'src/corelib/thread/qthread_unix.cpp')
-rw-r--r--src/corelib/thread/qthread_unix.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index 567c936..d2a824a 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -124,7 +124,14 @@ QThreadData *QThreadData::current()
} else {
data = new QThreadData;
pthread_setspecific(current_thread_data_key, data);
- data->thread = new QAdoptedThread(data);
+ QT_TRY {
+ data->thread = new QAdoptedThread(data);
+ } QT_CATCH(...) {
+ pthread_setspecific(current_thread_data_key, 0);
+ data->deref();
+ data = 0;
+ QT_RETHROW;
+ }
data->deref();
}
if (!QCoreApplicationPrivate::theMainThread)