diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2010-07-15 13:14:37 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-07-15 13:14:37 (GMT) |
commit | 8106f716043c22d71ff3dcdf9cd8a4db258fa81f (patch) | |
tree | fef8ef2bcc78da549037c94451058fde10268edd /src/corelib/thread | |
parent | a98bda4b42b068c9c3220ae2aded41a263387ac2 (diff) | |
parent | 03c01176ebf423085e56ceabcf8335ca5027a786 (diff) | |
download | Qt-8106f716043c22d71ff3dcdf9cd8a4db258fa81f.zip Qt-8106f716043c22d71ff3dcdf9cd8a4db258fa81f.tar.gz Qt-8106f716043c22d71ff3dcdf9cd8a4db258fa81f.tar.bz2 |
Merge remote branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
src/gui/kernel/qapplication.h
Diffstat (limited to 'src/corelib/thread')
-rw-r--r-- | src/corelib/thread/qthread_unix.cpp | 8 |
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(¤t_thread_data_once, create_current_thread_data_key); |