about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Src/exec.c8
-rw-r--r--Src/signals.c5
2 files changed, 6 insertions, 7 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 5d0701d88..a50fdd4ab 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1044,13 +1044,7 @@ entersubsh(int flags)
 		SETPGRP(0L, jobtab[list_pipe_job].gleader, 2);
 		if (!(flags & ESUB_ASYNC))
 		    ATTACHTTY(jobtab[thisjob].gleader, 2);
-	    } else if (gettygrp() == GETPGRP()) {
-		/*
-		 * There are races where if the process is attached
-		 * to the terminal blocking SIGTTOU causes errors.
-		 * So just leave signals alone.
-		 */
-		/* job_control_ok = 1;*/ /* Probably not a * fix */
+	    } else {
 #ifdef DEBUG_JOB_CONTROL
 		fprintf(stderr, "pid = %d, gleader = %d, pgrp = %d, list_pipe_child = %d, mypgrp = %d\n",
 			getpid(), jobtab[list_pipe_job].gleader,
diff --git a/Src/signals.c b/Src/signals.c
index 868764dd9..9e5a48b89 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -540,6 +540,11 @@ wait_for_processes(void)
 		if (WIFEXITED(status) &&
 		    pn->pid == jn->gleader &&
 		    killpg(pn->pid, 0) == -1) {
+#ifdef DEBUG_JOB_CONTROL
+		    fprintf(stderr, "pid %d exited in control of TTY\n",
+			    pn->pid);
+		    fflush(stderr);
+#endif
 		    SET_GLEADER(jn-jobtab, 0, 11);
 		    if (!(jn->stat & STAT_NOSTTY)) {
 			/*