From ab41d7f371f52097ab0cb183565f1d8e7c122760 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 26 Dec 2020 15:27:33 +0100 Subject: [PATCH] sh: Explain duplicate tcsetpgrp() calls This is a comment change only. --- bin/sh/jobs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/sh/jobs.c b/bin/sh/jobs.c index c46e526eab67..c0ba7d75e16d 100644 --- a/bin/sh/jobs.c +++ b/bin/sh/jobs.c @@ -928,7 +928,12 @@ forkshell(struct job *jp, union node *n, int mode) pgrp = jp->ps[0].pid; if (setpgid(0, pgrp) == 0 && mode == FORK_FG && ttyfd >= 0) { - /*** this causes superfluous TIOCSPGRPS ***/ + /* + * Each process in a pipeline must have the tty + * pgrp set before running its code. + * Only for pipelines of three or more processes + * could this be reduced to two calls. + */ if (tcsetpgrp(ttyfd, pgrp) < 0) error("tcsetpgrp failed, errno=%d", errno); }