Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/kern_sig.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/kern/kern_sig.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.325 retrieving revision 1.326 diff -u -p -r1.325 -r1.326 --- src/sys/kern/kern_sig.c 2016/04/06 03:11:31 1.325 +++ src/sys/kern/kern_sig.c 2016/04/27 21:15:40 1.326 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sig.c,v 1.325 2016/04/06 03:11:31 christos Exp $ */ +/* $NetBSD: kern_sig.c,v 1.326 2016/04/27 21:15:40 christos Exp $ */ /*- * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -70,7 +70,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.325 2016/04/06 03:11:31 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.326 2016/04/27 21:15:40 christos Exp $"); #include "opt_ptrace.h" #include "opt_dtrace.h" @@ -1382,6 +1382,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ks */ if ((prop & SA_CONT) != 0) { p->p_xsig = SIGCONT; + p->p_sflag |= PS_CONTINUED; child_psignal(p, 0); if (action == SIG_DFL) { KASSERT(signo != SIGKILL); @@ -1750,6 +1751,8 @@ issignal(struct lwp *l) /* Take the signal. */ (void)sigget(sp, NULL, signo, NULL); p->p_xsig = signo; + if (p->p_sflag & PS_CONTINUED) + p->p_sflag &= ~PS_CONTINUED; signo = 0; sigswitch(true, PS_NOCLDSTOP, p->p_xsig); } else if (prop & SA_IGNORE) {