diff options
| author | Don Lewis <truckman@FreeBSD.org> | 1998-11-11 10:04:13 +0000 |
|---|---|---|
| committer | Don Lewis <truckman@FreeBSD.org> | 1998-11-11 10:04:13 +0000 |
| commit | 831d27a9f56da38cf007714c169d208e7b9739be (patch) | |
| tree | 2bce7c99fd05ca07a117966c4c41f2f544ef20f3 /sys/kern/kern_proc.c | |
| parent | 21ffb6774a08602e1208977da6c5a652d85d32b6 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_proc.c')
| -rw-r--r-- | sys/kern/kern_proc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index d546ad771911..a51735880943 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)kern_proc.c 8.7 (Berkeley) 2/14/95 - * $Id: kern_proc.c,v 1.37 1998/07/11 07:45:40 bde Exp $ + * $Id: kern_proc.c,v 1.38 1998/11/09 15:07:41 truckman Exp $ */ #include <sys/param.h> @@ -48,6 +48,7 @@ #include <vm/vm_map.h> #include <sys/user.h> #include <vm/vm_zone.h> +#include <sys/filedesc.h> static MALLOC_DEFINE(M_PGRP, "pgrp", "process group header"); MALLOC_DEFINE(M_SESSION, "session", "session header"); @@ -243,6 +244,7 @@ enterpgrp(p, pgid, mksess) LIST_INIT(&pgrp->pg_members); LIST_INSERT_HEAD(PGRPHASH(pgid), pgrp, pg_hash); pgrp->pg_jobc = 0; + SLIST_INIT(&pgrp->pg_sigiolst); } else if (pgrp == p->p_pgrp) return (0); @@ -285,6 +287,12 @@ pgdelete(pgrp) register struct pgrp *pgrp; { + /* + * Reset any sigio structures pointing to us as a result of + * F_SETOWN with our pgid. + */ + funsetownlst(&pgrp->pg_sigiolst); + if (pgrp->pg_session->s_ttyp != NULL && pgrp->pg_session->s_ttyp->t_pgrp == pgrp) pgrp->pg_session->s_ttyp->t_pgrp = NULL; |
