summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2022-06-16 10:17:33 +0200
committerhjk <hjk@qt.io>2022-06-16 08:26:10 +0000
commit152b14207ce264222557665c568907931e9277d8 (patch)
treebbebe25943bab6fdc39d3e661b70febda4d79ea5 /src
parentbfad59ade006fd704439c229bbb37ffc560cd243 (diff)
downloadqt-creator-152b14207ce264222557665c568907931e9277d8.tar.gz
Replace QtcProcess::stopProcess() by stop() plus waitForFinished
... or nothing, if the process object is destroyed immediately. Change-Id: I6a1e1928bc49fc20a1c0e0ee9b8f4f723276bbca Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/shellcommand.cpp5
-rw-r--r--src/plugins/android/androidqmlpreviewworker.cpp3
-rw-r--r--src/plugins/android/androidsdkmanager.cpp12
-rw-r--r--src/plugins/clangtools/clangtoolrunner.cpp3
-rw-r--r--src/plugins/coreplugin/patchtool.cpp3
-rw-r--r--src/plugins/git/gerrit/gerritmodel.cpp3
-rw-r--r--src/plugins/git/gerrit/gerritplugin.cpp3
-rw-r--r--src/plugins/gitlab/queryrunner.cpp3
-rw-r--r--src/plugins/languageclient/languageclientinterface.cpp4
-rw-r--r--src/plugins/perforce/perforcechecker.cpp3
-rw-r--r--src/plugins/perforce/perforceplugin.cpp3
-rw-r--r--src/plugins/projectexplorer/runcontrol.cpp3
-rw-r--r--src/plugins/python/pipsupport.cpp3
-rw-r--r--src/plugins/qmldesigner/generateresource.cpp3
-rw-r--r--src/plugins/qnx/qnxutils.cpp4
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp1
-rw-r--r--src/plugins/vcsbase/vcsbasesubmiteditor.cpp1
17 files changed, 34 insertions, 26 deletions
diff --git a/src/libs/utils/shellcommand.cpp b/src/libs/utils/shellcommand.cpp
index 00f655a1ef..6f8a49de01 100644
--- a/src/libs/utils/shellcommand.cpp
+++ b/src/libs/utils/shellcommand.cpp
@@ -368,7 +368,10 @@ void ShellCommand::runFullySynchronous(QtcProcess &process, const FilePath &work
void ShellCommand::runSynchronous(QtcProcess &process, const FilePath &workingDirectory)
{
- connect(this, &ShellCommand::terminate, &process, &QtcProcess::stopProcess);
+ connect(this, &ShellCommand::terminate, &process, [&process] {
+ process.stop();
+ process.waitForFinished();
+ });
process.setEnvironment(processEnvironment());
if (d->m_codec)
process.setCodec(d->m_codec);
diff --git a/src/plugins/android/androidqmlpreviewworker.cpp b/src/plugins/android/androidqmlpreviewworker.cpp
index 103e7b2e5c..6c78c562d1 100644
--- a/src/plugins/android/androidqmlpreviewworker.cpp
+++ b/src/plugins/android/androidqmlpreviewworker.cpp
@@ -363,7 +363,8 @@ FilePath AndroidQmlPreviewWorker::createQmlrcFile(const FilePath &workFolder,
QByteArray stdOut;
QByteArray stdErr;
if (!rccProcess.readDataFromProcess(30, &stdOut, &stdErr, true)) {
- rccProcess.stopProcess();
+ rccProcess.stop();
+ rccProcess.waitForFinished();
appendMessage(tr("A timeout occurred running \"%1\"").
arg(rccProcess.commandLine().toUserOutput()), StdErrFormat);
qrcPath.removeFile();
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp
index d238e60ef3..628f245c34 100644
--- a/src/plugins/android/androidsdkmanager.cpp
+++ b/src/plugins/android/androidsdkmanager.cpp
@@ -166,8 +166,10 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
proc.setTimeoutS(timeout);
proc.setStdOutCallback([offset, progressQuota, &proc, &assertionFound, &fi](const QString &out) {
int progressPercent = parseProgress(out, assertionFound);
- if (assertionFound)
- proc.stopProcess();
+ if (assertionFound) {
+ proc.stop();
+ proc.waitForFinished();
+ }
if (progressPercent != -1)
fi.setProgressValue(offset + qRound((progressPercent / 100.0) * progressQuota));
});
@@ -175,8 +177,10 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
output.stdError = err;
});
if (interruptible) {
- QObject::connect(&sdkManager, &AndroidSdkManager::cancelActiveOperations,
- &proc, &QtcProcess::stopProcess);
+ QObject::connect(&sdkManager, &AndroidSdkManager::cancelActiveOperations, &proc, [&proc] {
+ proc.stop();
+ proc.waitForFinished();
+ });
}
proc.setCommand({config.sdkManagerToolPath(), newArgs});
proc.runBlocking(EventLoopMode::On);
diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp
index c970028709..ab5ef38989 100644
--- a/src/plugins/clangtools/clangtoolrunner.cpp
+++ b/src/plugins/clangtools/clangtoolrunner.cpp
@@ -71,7 +71,8 @@ ClangToolRunner::~ClangToolRunner()
m_process->kill();
m_process->waitForFinished(100);
} else {
- m_process->stopProcess();
+ m_process->stop();
+ m_process->waitForFinished();
}
}
diff --git a/src/plugins/coreplugin/patchtool.cpp b/src/plugins/coreplugin/patchtool.cpp
index f49185ea0e..d26fcba6c0 100644
--- a/src/plugins/coreplugin/patchtool.cpp
+++ b/src/plugins/coreplugin/patchtool.cpp
@@ -112,7 +112,8 @@ static bool runPatchHelper(const QByteArray &input, const FilePath &workingDirec
QByteArray stdOut;
QByteArray stdErr;
if (!patchProcess.readDataFromProcess(30, &stdOut, &stdErr, true)) {
- patchProcess.stopProcess();
+ patchProcess.stop();
+ patchProcess.waitForFinished();
MessageManager::writeFlashing(
QApplication::translate("Core::PatchTool", "A timeout occurred running \"%1\"")
.arg(patch.toUserOutput()));
diff --git a/src/plugins/git/gerrit/gerritmodel.cpp b/src/plugins/git/gerrit/gerritmodel.cpp
index 8f1f990cbb..9c835c98a5 100644
--- a/src/plugins/git/gerrit/gerritmodel.cpp
+++ b/src/plugins/git/gerrit/gerritmodel.cpp
@@ -335,7 +335,8 @@ void QueryContext::errorTermination(const QString &msg)
void QueryContext::terminate()
{
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
}
void QueryContext::processDone()
diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index f13c8b8c2a..b68aa56c7b 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -259,7 +259,8 @@ void FetchContext::checkout()
void FetchContext::terminate()
{
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
}
diff --git a/src/plugins/gitlab/queryrunner.cpp b/src/plugins/gitlab/queryrunner.cpp
index 0e54a99a09..fe46db842e 100644
--- a/src/plugins/gitlab/queryrunner.cpp
+++ b/src/plugins/gitlab/queryrunner.cpp
@@ -137,7 +137,8 @@ void QueryRunner::start()
void QueryRunner::terminate()
{
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
}
void QueryRunner::errorTermination(const QString &msg)
diff --git a/src/plugins/languageclient/languageclientinterface.cpp b/src/plugins/languageclient/languageclientinterface.cpp
index 49d0699a66..5b7431cda0 100644
--- a/src/plugins/languageclient/languageclientinterface.cpp
+++ b/src/plugins/languageclient/languageclientinterface.cpp
@@ -105,15 +105,13 @@ StdIOClientInterface::StdIOClientInterface()
StdIOClientInterface::~StdIOClientInterface()
{
- if (m_process)
- m_process->stopProcess();
delete m_process;
}
void StdIOClientInterface::startImpl()
{
if (m_process) {
- QTC_ASSERT(!m_process->isRunning(), m_process->stopProcess() );
+ QTC_CHECK(!m_process->isRunning());
delete m_process;
}
m_process = new Utils::QtcProcess;
diff --git a/src/plugins/perforce/perforcechecker.cpp b/src/plugins/perforce/perforcechecker.cpp
index 2e53d1e538..3dc7f73d50 100644
--- a/src/plugins/perforce/perforcechecker.cpp
+++ b/src/plugins/perforce/perforcechecker.cpp
@@ -107,7 +107,8 @@ void PerforceChecker::slotTimeOut()
if (!isRunning())
return;
m_timedOut = true;
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
emitFailed(tr("\"%1\" timed out after %2 ms.").arg(m_binary.toUserOutput()).arg(m_timeOutMS));
}
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index b415b21967..4c7039d260 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -1329,7 +1329,8 @@ PerforceResponse PerforcePluginPrivate::fullySynchronousProcess(const FilePath &
QByteArray stdErr;
const int timeOutS = (flags & LongTimeOut) ? m_settings.longTimeOutS() : m_settings.timeOutS.value();
if (!process.readDataFromProcess(timeOutS, &stdOut, &stdErr, true)) {
- process.stopProcess();
+ process.stop();
+ process.waitForFinished();
response.error = true;
response.message = msgTimeout(timeOutS);
return response;
diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp
index bd7714546a..53bcd28d10 100644
--- a/src/plugins/projectexplorer/runcontrol.cpp
+++ b/src/plugins/projectexplorer/runcontrol.cpp
@@ -1336,7 +1336,8 @@ void SimpleTargetRunnerPrivate::stop()
if (m_isLocal) {
if (!isRunning())
return;
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
QTimer::singleShot(100, this, [this] { forwardDone(); });
} else {
if (m_stopRequested)
diff --git a/src/plugins/python/pipsupport.cpp b/src/plugins/python/pipsupport.cpp
index c354ebb4e1..44ee82727c 100644
--- a/src/plugins/python/pipsupport.cpp
+++ b/src/plugins/python/pipsupport.cpp
@@ -95,7 +95,8 @@ void PipInstallTask::run()
void PipInstallTask::cancel()
{
- m_process.stopProcess();
+ m_process.stop();
+ m_process.waitForFinished();
Core::MessageManager::writeFlashing(
tr("The %1 installation was canceled by %2.")
.arg(m_package.displayName, m_killTimer.isActive() ? tr("user") : tr("time out")));
diff --git a/src/plugins/qmldesigner/generateresource.cpp b/src/plugins/qmldesigner/generateresource.cpp
index 7210a14471..b85370f60f 100644
--- a/src/plugins/qmldesigner/generateresource.cpp
+++ b/src/plugins/qmldesigner/generateresource.cpp
@@ -255,7 +255,6 @@ void GenerateResource::generateMenuEntry()
QByteArray stdOut;
QByteArray stdErr;
if (!rccProcess.readDataFromProcess(30, &stdOut, &stdErr, true)) {
- rccProcess.stopProcess();
Core::MessageManager::writeDisrupting(
QCoreApplication::translate("QmlDesigner::GenerateResource",
"A timeout occurred running \"%1\"")
@@ -415,7 +414,6 @@ void GenerateResource::generateMenuEntry()
QByteArray stdOut;
QByteArray stdErr;
if (!rccProcess.readDataFromProcess(30, &stdOut, &stdErr, true)) {
- rccProcess.stopProcess();
Core::MessageManager::writeDisrupting(
QCoreApplication::translate("QmlDesigner::GenerateResource",
"A timeout occurred running \"%1\"")
@@ -545,7 +543,6 @@ void GenerateResource::generateMenuEntry()
QByteArray stdOut;
QByteArray stdErr;
if (!rccProcess.readDataFromProcess(30, &stdOut, &stdErr, true)) {
- rccProcess.stopProcess();
Core::MessageManager::writeDisrupting(
QCoreApplication::translate("QmlDesigner::GenerateResource",
"A timeout occurred running \"%1\"")
diff --git a/src/plugins/qnx/qnxutils.cpp b/src/plugins/qnx/qnxutils.cpp
index 6639f77205..e46b5cec8e 100644
--- a/src/plugins/qnx/qnxutils.cpp
+++ b/src/plugins/qnx/qnxutils.cpp
@@ -118,10 +118,8 @@ EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const FilePath &filePath)
QApplication::setOverrideCursor(Qt::BusyCursor);
bool waitResult = process.waitForFinished(10000);
QApplication::restoreOverrideCursor();
- if (!waitResult) {
- process.stopProcess();
+ if (!waitResult)
return items;
- }
if (process.result() != ProcessResult::FinishedWithSuccess)
return items;
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index ea74600c52..4298c74590 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -1809,7 +1809,6 @@ static QByteArray runQmakeQuery(const FilePath &binary, const Environment &env,
return {};
}
if (!process.waitForFinished(timeOutMS)) {
- process.stopProcess();
*error = QCoreApplication::translate("QtVersion", "Timeout running \"%1\" (%2 ms).")
.arg(binary.displayName()).arg(timeOutMS);
return {};
diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
index b405bf40b1..ae8d877452 100644
--- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
+++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
@@ -669,7 +669,6 @@ bool VcsBaseSubmitEditor::runSubmitMessageCheckScript(const QString &checkScript
QByteArray stdOutData;
QByteArray stdErrData;
if (!checkProcess.readDataFromProcess(30, &stdOutData, &stdErrData, false)) {
- checkProcess.stopProcess();
*errorMessage = tr("The check script \"%1\" timed out.").
arg(QDir::toNativeSeparators(checkScript));
return false;