QProcess::startDetached/Unix: remove unnecessary ignoring of SIGPIPE

This is unnecessary because we can only get SIGPIPE if the reading end
of the pipe is closed. And that can only happen if the parent process
has exited, meaning there's no one to read our message anyway.

Change-Id: Ic90d8429a0eb4837971dfffd1664ec6821993ada
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
(cherry picked from commit 089bcb007454fe44224139b2d0a0e4145f209b15)
This commit is contained in:
Thiago Macieira 2021-02-20 09:43:34 -08:00
parent 62d3268501
commit bcc80f4e21

View File

@ -960,22 +960,12 @@ bool QProcessPrivate::startDetached(qint64 *pid)
else
qt_safe_execv(argv[0], argv);
struct sigaction noaction;
memset(&noaction, 0, sizeof(noaction));
noaction.sa_handler = SIG_IGN;
::sigaction(SIGPIPE, &noaction, nullptr);
// '\1' means execv failed
char c = '\1';
qt_safe_write(startedPipe[1], &c, 1);
qt_safe_close(startedPipe[1]);
::_exit(1);
} else if (doubleForkPid == -1) {
struct sigaction noaction;
memset(&noaction, 0, sizeof(noaction));
noaction.sa_handler = SIG_IGN;
::sigaction(SIGPIPE, &noaction, nullptr);
// '\2' means internal error
char c = '\2';
qt_safe_write(startedPipe[1], &c, 1);