summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qthread_unix.cpp
diff options
context:
space:
mode:
authorMarkku Luukkainen <markku.luukkainen@digia.com>2009-05-04 14:17:45 (GMT)
committerMarkku Luukkainen <markku.luukkainen@digia.com>2009-05-04 14:17:45 (GMT)
commit493e8ed7a90713826defbd220694cb6fd7987ac3 (patch)
tree30c4511e539c609e1e8d892770bc2b76f8d1bb66 /src/corelib/thread/qthread_unix.cpp
parent2e76d2bfedce77064fde85573f5267032ce7979e (diff)
parent812b8de816bf84a5607d5a5d178283be3eb6bfc7 (diff)
downloadQt-493e8ed7a90713826defbd220694cb6fd7987ac3.zip
Qt-493e8ed7a90713826defbd220694cb6fd7987ac3.tar.gz
Qt-493e8ed7a90713826defbd220694cb6fd7987ac3.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into softkeys
Diffstat (limited to 'src/corelib/thread/qthread_unix.cpp')
-rw-r--r--src/corelib/thread/qthread_unix.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index aad55bc..567c936 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -226,7 +226,7 @@ void *QThreadPrivate::start(void *arg)
}
#ifdef Q_OS_SYMBIAN
-void QThreadPrivate::finish(void *arg, bool lockAnyway)
+void QThreadPrivate::finish(void *arg, bool lockAnyway, bool closeNativeHandle)
#else
void QThreadPrivate::finish(void *arg)
#endif
@@ -258,7 +258,8 @@ void QThreadPrivate::finish(void *arg)
d->thread_id = 0;
#ifdef Q_OS_SYMBIAN
- d->data->symbian_thread_handle.Close();
+ if (closeNativeHandle)
+ d->data->symbian_thread_handle.Close();
#endif
d->thread_done.wakeAll();
#ifdef Q_OS_SYMBIAN
@@ -530,10 +531,11 @@ void QThread::terminate()
d->terminatePending = true;
return;
}
-
- d->data->symbian_thread_handle.Terminate(KErrNone);
-
+
d->terminated = true;
+ QThreadPrivate::finish(this, false, false);
+ d->data->symbian_thread_handle.Terminate(KErrNone);
+ d->data->symbian_thread_handle.Close();
#endif