aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/clangstaticanalyzer/clangstaticanalyzerrunner.cpp
diff options
context:
space:
mode:
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 e3c63625bf..ed8efb93f8 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)