diff options
| author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-07-12 15:49:20 +0200 |
|---|---|---|
| committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-07-12 15:13:03 +0000 |
| commit | d8286adc7c71c354f22b98e2d69568638bcb49e7 (patch) | |
| tree | 0308d0fc8f0990444c9a383b5c0ff25060d476b2 /src/tools/processlauncher | |
| parent | f8e0f6eb915780ea22b6b94128cb10e84a5f3aa7 (diff) | |
| download | qt-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.cpp | 9 | ||||
| -rw-r--r-- | src/tools/processlauncher/launchersockethandler.h | 1 |
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(); |
