diff options
author | Laszlo Agocs <laszlo.p.agocs@nokia.com> | 2011-04-18 15:05:38 (GMT) |
---|---|---|
committer | Laszlo Agocs <laszlo.p.agocs@nokia.com> | 2011-04-18 15:09:50 (GMT) |
commit | 41aa023ef6019ac9745b780c953f48b8bbc42a42 (patch) | |
tree | c6ff22bc9e0aae2dd8e09031fc39e0f38c10224d /src/corelib/thread | |
parent | da8f333cfe17a53d475208efa36fa369a9ee4638 (diff) | |
download | Qt-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')
-rw-r--r-- | src/corelib/thread/qthread_symbian.cpp | 4 |
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; } |