NetBSD-Bugs archive

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

Re: kern/38060: blocking TSTP is broken



[ resending to gnats-bugs%NetBSD.org@localhost ]

> > >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