summaryrefslogtreecommitdiff
path: root/src/tools/processlauncher
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-07-12 15:49:20 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-07-12 15:13:03 +0000
commitd8286adc7c71c354f22b98e2d69568638bcb49e7 (patch)
tree0308d0fc8f0990444c9a383b5c0ff25060d476b2 /src/tools/processlauncher
parentf8e0f6eb915780ea22b6b94128cb10e84a5f3aa7 (diff)
downloadqt-creator-d8286adc7c71c354f22b98e2d69568638bcb49e7.tar.gz
Implement ProcessLauncher::processId()
Implement the reply confirmation for the started signal. After qtcreator_processlauncher starts a new process we connect to its started() signal and post a reply through the socket to the LauncherInterface with the information about the new PID. ProcessLauncherImpl now emits the started signal with a delay, just after the confirmation has been received. Change-Id: I2689e8e97b17466bd1f6b32c01909c12d80fcdef Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/tools/processlauncher')
-rw-r--r--src/tools/processlauncher/launchersockethandler.cpp9
-rw-r--r--src/tools/processlauncher/launchersockethandler.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/tools/processlauncher/launchersockethandler.cpp b/src/tools/processlauncher/launchersockethandler.cpp
index 596b5af4a8..04da96303f 100644
--- a/src/tools/processlauncher/launchersockethandler.cpp
+++ b/src/tools/processlauncher/launchersockethandler.cpp
@@ -178,6 +178,14 @@ void LauncherSocketHandler::handleProcessError()
sendPacket(packet);
}
+void LauncherSocketHandler::handleProcessStarted()
+{
+ Process *proc = senderProcess();
+ ProcessStartedPacket packet(proc->token());
+ packet.processId = proc->processId();
+ sendPacket(packet);
+}
+
void LauncherSocketHandler::handleProcessFinished()
{
Process * proc = senderProcess();
@@ -265,6 +273,7 @@ Process *LauncherSocketHandler::setupProcess(quintptr token)
{
const auto p = new Process(token, this);
connect(p, &QProcess::errorOccurred, this, &LauncherSocketHandler::handleProcessError);
+ connect(p, &QProcess::started, this, &LauncherSocketHandler::handleProcessStarted);
connect(p, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
this, &LauncherSocketHandler::handleProcessFinished);
connect(p, &Process::failedToStop, this, &LauncherSocketHandler::handleStopFailure);
diff --git a/src/tools/processlauncher/launchersockethandler.h b/src/tools/processlauncher/launchersockethandler.h
index 6ad400d2b6..2f67d51528 100644
--- a/src/tools/processlauncher/launchersockethandler.h
+++ b/src/tools/processlauncher/launchersockethandler.h
@@ -53,6 +53,7 @@ private:
void handleSocketError();
void handleSocketClosed();
void handleProcessError();
+ void handleProcessStarted();
void handleProcessFinished();
void handleStopFailure();