summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-10 08:48:11 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-10 08:48:11 (GMT)
commitcf907cb8ab5ecb95d964762c1cce586fa2207dff (patch)
tree2aca36ededeae065c2892e5edd8daf01ea03cb95 /src/corelib
parent4cf3730c65b28f3e895a1a4c8f7db509e11c71c0 (diff)
parent0efc71b7af2818f2f40438b2807efe361352f7a9 (diff)
downloadQt-cf907cb8ab5ecb95d964762c1cce586fa2207dff.zip
Qt-cf907cb8ab5ecb95d964762c1cce586fa2207dff.tar.gz
Qt-cf907cb8ab5ecb95d964762c1cce586fa2207dff.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Linux runonphone - tell the user which driver to load Fix USB serial port detection of the Nokia N95 on linux Fix license headers on new files imported from Qt Creator Implement just in time debug feature for runonphone Merge tools/runonphone/symbianutils from qtcreator src/shared/symbianutils Add exception barrier to QCertificateRetriever::RunL() Set QThreads to be process critical automatically on Symbian OS
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/thread/qthread_unix.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index 6b34b5f..d193b2e 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -247,6 +247,14 @@ void *QThreadPrivate::start(void *arg)
data->symbian_thread_handle = RThread();
TThreadId threadId = data->symbian_thread_handle.Id();
data->symbian_thread_handle.Open(threadId);
+ // On symbian, threads other than the main thread are non critical by default
+ // This means a worker thread can crash without crashing the application - to
+ // use this feature, we would need to use RThread::Logon in the main thread
+ // to catch abnormal thread exit and emit the finished signal.
+ // For the sake of cross platform consistency, we set the thread as process critical
+ // - advanced users who want the symbian behaviour can change the critical
+ // attribute of the thread again once the app gains control in run()
+ User::SetCritical(User::EProcessCritical);
#endif
pthread_once(&current_thread_data_once, create_current_thread_data_key);