aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <p.stephenson@samsung.com>2018-09-07 13:42:01 +0100
committerPeter Stephenson <p.stephenson@samsung.com>2018-09-07 13:42:01 +0100
commite931ff28669e9139d31ea1b7d259b1a396d017a4 (patch)
tree6264ca6f0b42964059f84a72df12d99f0a8b54ce
parent0616ab05b795ffedb746799fe1b44a80d20e8505 (diff)
downloadzsh-job_control_debug.tar.gz
zsh-job_control_debug.tar.xz
zsh-job_control_debug.zip
Yet more debug info.job_control_debug
-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)) {
/*