From: Alan Cox Date: Tue, 29 Dec 2015 22:43:14 +0000 (+0000) Subject: signals: SIGCONT should be sent after a SIGHUP X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=be61af52a0101aa80b4a586cfb4b59ad02652930;p=FUZIX.git signals: SIGCONT should be sent after a SIGHUP --- diff --git a/Kernel/process.c b/Kernel/process.c index 989a3c1f..b4f8d451 100644 --- a/Kernel/process.c +++ b/Kernel/process.c @@ -427,9 +427,10 @@ void unix_syscall(void) void sgrpsig(uint16_t pgrp, uint16_t sig) { ptptr p; - for (p = ptab; p < ptab_end; ++p) { - if (p->p_pgrp == pgrp) - ssig(p, sig); + if (pgrp) { + for (p = ptab; p < ptab_end; ++p) + if (p->p_pgrp == pgrp) + ssig(p, sig); } } @@ -607,6 +608,7 @@ void doexit(int16_t val, int16_t val2) if (p->p_pgrp == udata.u_ptab->p_pid) { p->p_pgrp = 0; ssig(p, SIGHUP); + ssig(p, SIGCONT); } } tty_exit(); diff --git a/Kernel/tty.c b/Kernel/tty.c index 4dc68334..c9ce5ffd 100644 --- a/Kernel/tty.c +++ b/Kernel/tty.c @@ -445,6 +445,7 @@ void tty_hangup(uint8_t minor) struct tty *t = &ttydata[minor]; /* Kill users */ sgrpsig(t->pgrp, SIGHUP); + sgrpsig(t->pgrp, SIGCONT); t->pgrp = 0; /* Stop any new I/O with errors */ t->flag |= TTYF_DEAD;