diff options
Diffstat (limited to 'src/lib/corelib/tools/launcherinterface.cpp')
-rw-r--r-- | src/lib/corelib/tools/launcherinterface.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/corelib/tools/launcherinterface.cpp b/src/lib/corelib/tools/launcherinterface.cpp index d2cdf44df..cd877c154 100644 --- a/src/lib/corelib/tools/launcherinterface.cpp +++ b/src/lib/corelib/tools/launcherinterface.cpp @@ -61,11 +61,23 @@ namespace Internal { class LauncherProcess : public QProcess { public: - LauncherProcess(QObject *parent) : QProcess(parent) { } + LauncherProcess(QObject *parent) : QProcess(parent) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && defined(Q_OS_UNIX) + setChildProcessModifier([this] { setupChildProcess_impl(); }); +#endif + } private: +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void setupChildProcess() override { + setupChildProcess_impl(); + } +#endif + + void setupChildProcess_impl() + { #ifdef Q_OS_UNIX const auto pid = static_cast<pid_t>(processId()); setpgid(pid, pid); |