aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <p.stephenson@samsung.com>2018-09-07 13:42:01 +0100
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2018-09-16 17:42:32 +0100
commitf8c02f38566d368935fbd09143e2f59450ef1e5f (patch)
treeff576e4b33bc1a7f4e859f824de4bbac34ce2d9b
parentb470d6fa709b3afbd4f2f4448ab289ec5a300a73 (diff)
downloadzsh-job_control_debug2.tar.gz
zsh-job_control_debug2.tar.xz
zsh-job_control_debug2.zip
Yet more debug info.job_control_debug2
-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 d6e045770..3a125ef73 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1050,13 +1050,7 @@ entersubsh(int flags, struct entersubsh_ret *retp)
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 0ffcd9dc4..36f0e1c8c 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)) {
/*