NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/38060: blocking TSTP is broken
The following reply was made to PR kern/38060; it has been noted by GNATS.
From: yamt%mwd.biglobe.ne.jp@localhost (YAMAMOTO Takashi)
To: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost,
gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/38060: blocking TSTP is broken
Date: Mon, 3 Mar 2008 09:19:23 +0900 (JST)
[ 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