summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qthread_symbian.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-04-18 15:05:38 (GMT)
committerLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-04-18 15:09:50 (GMT)
commit41aa023ef6019ac9745b780c953f48b8bbc42a42 (patch)
treec6ff22bc9e0aae2dd8e09031fc39e0f38c10224d /src/corelib/thread/qthread_symbian.cpp
parentda8f333cfe17a53d475208efa36fa369a9ee4638 (diff)
downloadQt-41aa023ef6019ac9745b780c953f48b8bbc42a42.zip
Qt-41aa023ef6019ac9745b780c953f48b8bbc42a42.tar.gz
Qt-41aa023ef6019ac9745b780c953f48b8bbc42a42.tar.bz2
Create a cleanup stack for each new thread on Symbian.
The native thread implementation in Qt 4.8 did not call CTrapCleanup::New() which resulted in E32USER-CBASE 69 panics in applications when they tried to use the cleanup stack in a thread's run() function. In 4.7 this was working because OpenC's pthread implementation created a CTrapCleanup automatically. Now we do it also in the native Symbian thread implementation. Trask-number: QTBUG-18822 Reviewed-by: Murray Read
Diffstat (limited to 'src/corelib/thread/qthread_symbian.cpp')
-rw-r--r--src/corelib/thread/qthread_symbian.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/thread/qthread_symbian.cpp b/src/corelib/thread/qthread_symbian.cpp
index 1474b36..436c105 100644
--- a/src/corelib/thread/qthread_symbian.cpp
+++ b/src/corelib/thread/qthread_symbian.cpp
@@ -319,6 +319,8 @@ void *QThreadPrivate::start(void *arg)
data->quitNow = thr->d_func()->exited;
}
+ CTrapCleanup *cleanup = CTrapCleanup::New();
+
// ### TODO: allow the user to create a custom event dispatcher
createEventDispatcher(data);
@@ -327,6 +329,8 @@ void *QThreadPrivate::start(void *arg)
QThreadPrivate::finish(arg);
+ delete cleanup;
+
return 0;
}