summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-11-18 13:02:02 +0100
committerDaniel Teske <daniel.teske@digia.com>2013-11-19 17:26:34 +0100
commit17f704606f14e1c67fd231de257ffafc531a175e (patch)
tree76914c175eaf62bb51d127354807d73b9c86a86b /src
parent8993c55754f6624a6c8f520d560679fe7c064e0b (diff)
downloadqt-creator-17f704606f14e1c67fd231de257ffafc531a175e.tar.gz
BuildManager::cancel() needs to block until the step is canceled
Task-number: QTCREATORBUG-10256 Change-Id: I8e761ac072954eb1802b9b4eec415f48414b7990 Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/buildmanager.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index 6c3d8af142..14c62c4bb4 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -216,8 +216,13 @@ void BuildManager::cancel()
return;
d->m_canceling = true;
d->m_watcher.cancel();
- if (d->m_currentBuildStep->runInGuiThread())
+ if (d->m_currentBuildStep->runInGuiThread()) {
d->m_currentBuildStep->cancel();
+ while (d->m_canceling)
+ QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+ } else {
+ d->m_watcher.waitForFinished();
+ }
}
}