aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <[email protected]>2014-10-28 09:44:26 +0100
committerNikolai Kosjar <[email protected]>2014-10-28 11:13:05 +0200
commit4acbedf841436b88843c7c18dfdef711ad9c00a2 (patch)
tree02a917d9bce3787e400f25c515407befe7bae3ce /plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
parentcb49d04f460cea9beba84587a710efac78189b69 (diff)
RunControl: Fix 'Stop'
Terminate/kill current runners, so that the GUI will reflect that quite soon and not if all runners finished. Change-Id: I83eed6ecf1678444a8b38bab6cc05d8694a4eb49 Reviewed-by: Nikolai Kosjar <[email protected]>
Diffstat (limited to 'plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp')
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
index e3c63625bf7..ed8efb93f84 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
@@ -84,8 +84,13 @@ ClangStaticAnalyzerRunner::ClangStaticAnalyzerRunner(const QString &clangExecuta
ClangStaticAnalyzerRunner::~ClangStaticAnalyzerRunner()
{
const QProcess::ProcessState processState = m_process.state();
- if (processState == QProcess::Starting || processState == QProcess::Running)
- m_process.kill();
+ if (processState == QProcess::Starting || processState == QProcess::Running) {
+ m_process.terminate();
+ if (!m_process.waitForFinished(500)) {
+ m_process.kill();
+ m_process.waitForFinished();
+ }
+ }
}
bool ClangStaticAnalyzerRunner::run(const QString &filePath, const QStringList &compilerOptions)