diff options
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 1725d54..572aab3 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -67,6 +67,7 @@ #ifdef KTRACE #include <sys/ktrace.h> #endif +#include <sys/ksiginfo.h> #include <vm/vm.h> #include <vm/vm_extern.h> @@ -244,7 +245,7 @@ exit1(td, rv) */ PROC_LOCK(p); p->p_flag &= ~(P_TRACED | P_PPWAIT); - SIGEMPTYSET(p->p_siglist); + signal_delete(p, NULL, 0); PROC_UNLOCK(p); if (timevalisset(&p->p_realtimer.it_value)) callout_stop(&p->p_itcallout); @@ -473,6 +474,12 @@ exit1(td, rv) */ if (p->p_flag & P_KTHREAD) wakeup(p); + + /* + * And now, kill off its signals... + */ + signal_delete(p, NULL, 0); + PROC_UNLOCK(p); /* |