aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/updateinfo
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-12-18 11:02:16 +0100
committerEike Ziller <eike.ziller@digia.com>2013-12-18 11:02:16 +0100
commite035ae6df1cdd3ac2e57fe60dfa92243c5a7964f (patch)
tree58102886f9173683f2b88907ff2494ce9940c77c /src/plugins/updateinfo
parentfca56658bb6d0358e7b86f56cf7e40fba8644bce (diff)
parent1193cfa092ee7b3694d2aa5fede19fb86e224024 (diff)
Merge remote-tracking branch 'origin/3.0'
Conflicts: share/qtcreator/debugger/stdtypes.py src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp Change-Id: I5d86746d58960e41e01e725ccb2a6c00890f0dfd
Diffstat (limited to 'src/plugins/updateinfo')
-rw-r--r--src/plugins/updateinfo/updateinfoplugin.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp
index eb09d92c2a..2882cf8bb0 100644
--- a/src/plugins/updateinfo/updateinfoplugin.cpp
+++ b/src/plugins/updateinfo/updateinfoplugin.cpp
@@ -91,6 +91,9 @@ UpdateInfoPlugin::UpdateInfoPlugin()
UpdateInfoPlugin::~UpdateInfoPlugin()
{
+ d->lastCheckUpdateInfoTask.cancel();
+ d->lastCheckUpdateInfoTask.waitForFinished();
+
delete d;
}
@@ -230,7 +233,14 @@ QDomDocument UpdateInfoPlugin::update()
// start
QProcess updater;
updater.start(d->updaterProgram, QStringList() << d->updaterCheckOnlyArgument);
- updater.waitForFinished();
+ while (updater.state() != QProcess::NotRunning) {
+ if (!updater.waitForFinished(1000)
+ && d->lastCheckUpdateInfoTask.isCanceled()) {
+ updater.kill();
+ updater.waitForFinished(-1);
+ return QDomDocument();
+ }
+ }
// process return value
QDomDocument updates;