diff options
author | mg147109 <none@none> | 2006-06-15 04:45:02 -0700 |
---|---|---|
committer | mg147109 <none@none> | 2006-06-15 04:45:02 -0700 |
commit | 2b51d29a0450e65005bfc1c43520e6ebb13778ce (patch) | |
tree | 35d8c8987e123865324ee9e30cdc275926225cd8 /usr/src/cmd/csh/sh.proc.c | |
parent | 1d452cf5123cb6ac0a013a4dbd4dcceeb0da314d (diff) | |
download | illumos-joyent-2b51d29a0450e65005bfc1c43520e6ebb13778ce.tar.gz |
6230795 C-Shell leaves process running after termination.
Diffstat (limited to 'usr/src/cmd/csh/sh.proc.c')
-rw-r--r-- | usr/src/cmd/csh/sh.proc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/usr/src/cmd/csh/sh.proc.c b/usr/src/cmd/csh/sh.proc.c index d0d043b3db..298c2e718a 100644 --- a/usr/src/cmd/csh/sh.proc.c +++ b/usr/src/cmd/csh/sh.proc.c @@ -1288,3 +1288,18 @@ okpcntl(void) if (tpgrp == 0) error("No job control in subshells"); } + +void +hupforegnd(void) +{ + struct process *pp; + int omask; + + omask = sigblock(sigmask(SIGCHLD)); + for (pp = (&proclist)->p_next; pp != PNULL; pp = pp->p_next) + if (pp->p_pid > 0) { + if (pp->p_flags & PFOREGND) + (void) kill(pp->p_pid, SIGHUP); + } + (void) sigsetmask(omask); +} |