diff --git a/src/corelib/io/qprocess_p.h b/src/corelib/io/qprocess_p.h index 6dfc4565fbb..973f9b3abfe 100644 --- a/src/corelib/io/qprocess_p.h +++ b/src/corelib/io/qprocess_p.h @@ -284,9 +284,9 @@ public: std::function childProcessModifier; }; std::unique_ptr unixExtras; - qint64 pid = 0; QSocketNotifier *stateNotifier = nullptr; Q_PIPE childStartedPipe[2] = {INVALID_Q_PIPE, INVALID_Q_PIPE}; + pid_t pid = 0; int forkfd = -1; #endif diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp index a5e52fb7937..8c07927ad4e 100644 --- a/src/corelib/io/qprocess_unix.cpp +++ b/src/corelib/io/qprocess_unix.cpp @@ -474,8 +474,7 @@ void QProcessPrivate::startProcess() if (unixExtras && unixExtras->childProcessModifier) ffdflags |= FFD_USE_FORK; - pid_t childPid; - forkfd = ::vforkfd(ffdflags , &childPid, execChild2, &execChild1); + forkfd = ::vforkfd(ffdflags, &pid, execChild2, &execChild1); int lastForkErrno = errno; if (forkfd == -1) { @@ -490,7 +489,6 @@ void QProcessPrivate::startProcess() return; } - pid = qint64(childPid); Q_ASSERT(pid > 0); // parent @@ -724,7 +722,7 @@ void QProcessPrivate::terminateProcess() qDebug("QProcessPrivate::terminateProcess() pid=%jd", intmax_t(pid)); #endif if (pid > 0) - ::kill(pid_t(pid), SIGTERM); + ::kill(pid, SIGTERM); } void QProcessPrivate::killProcess() @@ -733,7 +731,7 @@ void QProcessPrivate::killProcess() qDebug("QProcessPrivate::killProcess() pid=%jd", intmax_t(pid)); #endif if (pid > 0) - ::kill(pid_t(pid), SIGKILL); + ::kill(pid, SIGKILL); } bool QProcessPrivate::waitForStarted(const QDeadlineTimer &deadline)