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: Andrew Doran <ad%netbsd.org@localhost>
> To: gnats-bugs%NetBSD.org@localhost
> Cc:
> Subject: Re: kern/38060: blocking TSTP is broken
> Date: Tue, 4 Mar 2008 15:55:21 +0000
>
> On Mon, Mar 03, 2008 at 12:20:03AM +0000, YAMAMOTO Takashi wrote:
>
> > > 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
> >
>
> I think this should work. I can't remember why it stops there instead of
> deferring to issignal().
because otherwise it makes nanosleep wake up earlier?
(it was fixed by kern_time.c rev.1.141.)
> There is a question over signal masking. TSTP is job control and so operates
> on the whole process, although masks are per-thread. I found nothing in the
> standards about this. I think we can be lazy and assume that if any thread
> has it unmasked, it can be taken.
>
> Andrew
i couldn't find anything in standards either.
YAMAMOTO Takashi
Home |
Main Index |
Thread Index |
Old Index