NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/38060: blocking TSTP is broken



> >Number:         38060
> >Category:       kern
> >Synopsis:       blocking TSTP is broken

how about this?

YAMAMOTO Takashi


Index: kern_sig.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kern_sig.c,v
retrieving revision 1.272
diff -u -p -r1.272 kern_sig.c
--- kern_sig.c  20 Feb 2008 11:48:46 -0000      1.272
+++ kern_sig.c  2 Mar 2008 12:21:27 -0000
@@ -1352,23 +1352,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ks
                if ((prop & SA_CONT) != 0 && action == SIG_DFL)
                        goto out;
 
-               if ((prop & SA_STOP) != 0 && action == SIG_DFL) {
-                       /*
-                        * If a child holding parent blocked, stopping could
-                        * cause deadlock: discard the signal.
-                        */
-                       if ((p->p_sflag & PS_PPWAIT) == 0) {
-                               p->p_xstat = signo;
-                               proc_stop(p, 1, signo);
-                       }
-                       goto out;
-               } else {
-                       /*
-                        * Stop signals with the default action are handled
-                        * specially in issignal(), and so are not enqueued.
-                        */
-                       sigput(&p->p_sigpend, p, kp);
-               }
+               sigput(&p->p_sigpend, p, kp);
        } else {
                /*
                 * Process is stopped or stopping.  If traced, then no


Home | Main Index | Thread Index | Old Index