summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2010-03-05 09:10:57 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2010-03-05 09:16:38 (GMT)
commita0d7a5cf999fe3adac2b2166085194cf93a4a424 (patch)
treeeb249100f859b7c7e5e151d4ea52277e916fc13e /src/corelib/io
parent5dba125fb953718d8282ff317a6ff34b612bcf45 (diff)
downloadQt-a0d7a5cf999fe3adac2b2166085194cf93a4a424.zip
Qt-a0d7a5cf999fe3adac2b2166085194cf93a4a424.tar.gz
Qt-a0d7a5cf999fe3adac2b2166085194cf93a4a424.tar.bz2
Fixed crash at application exit when QProcess was used in Symbian
QProcessManagerMediator and QProcessActive were not properly canceled in their destructors, causing crash when global static QProcessManager was deleted. Task-number: QTBUG-7735 Reviewed-by: Janne Anttila
Diffstat (limited to 'src/corelib/io')
-rw-r--r--src/corelib/io/qprocess_symbian.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/corelib/io/qprocess_symbian.cpp b/src/corelib/io/qprocess_symbian.cpp
index 75cde51..e37bdda 100644
--- a/src/corelib/io/qprocess_symbian.cpp
+++ b/src/corelib/io/qprocess_symbian.cpp
@@ -371,6 +371,7 @@ QProcessActive::QProcessActive()
// Called from ProcessManagerThread
QProcessActive::~QProcessActive()
{
+ Cancel();
process = NULL;
pproc = NULL;
}
@@ -477,6 +478,7 @@ QProcessManagerMediator::QProcessManagerMediator()
// Called from ProcessManagerThread
QProcessManagerMediator::~QProcessManagerMediator()
{
+ Cancel();
processManagerThread.Close();
currentCommand = ENoCommand;
currentObserver = NULL;