In kern_sigtimedwait, do not mask SIGKILL because a stopped process
authorDavid Xu <davidxu@dragonflybsd.org>
Wed, 2 Mar 2005 06:17:17 +0000 (06:17 +0000)
committerDavid Xu <davidxu@dragonflybsd.org>
Wed, 2 Mar 2005 06:17:17 +0000 (06:17 +0000)
is always able to be killed by SIGKILL.

sys/kern/kern_sig.c

index b8f2df9..c9103c0 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)kern_sig.c  8.7 (Berkeley) 4/18/94
  * $FreeBSD: src/sys/kern/kern_sig.c,v 1.72.2.17 2003/05/16 16:34:34 obrien Exp $
- * $DragonFly: src/sys/kern/kern_sig.c,v 1.35 2005/02/21 01:36:05 davidxu Exp $
+ * $DragonFly: src/sys/kern/kern_sig.c,v 1.36 2005/03/02 06:17:17 davidxu Exp $
  */
 
 #include "opt_ktrace.h"
@@ -1051,6 +1051,7 @@ kern_sigtimedwait(sigset_t waitset, siginfo_t *info, struct timespec *timeout)
                if ((sig = sig_ffs(&set)) != 0) {
                        SIGFILLSET(p->p_sigmask);
                        SIGDELSET(p->p_sigmask, sig);
+                       SIG_CANTMASK(p->p_sigmask);
                        sig = issignal(p);
                        /*
                         * It may be a STOP signal, in the case, issignal