Date: Wed, 16 Apr 2003 14:40:08 -0700 (PDT) From: Daniel Eischen <eischen@pcnet1.pcnet.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/49087: Signals lost in programs linked with libc_r Message-ID: <200304162140.h3GLe8rs062452@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/49087; it has been noted by GNATS.
From: Daniel Eischen <eischen@pcnet1.pcnet.com>
To: Enache Adrian <enache@rdslink.ro>
Cc: Anton Berezin <tobez@FreeBSD.org>,
FreeBSD-gnats-submit@FreeBSD.org, fjoe@FreeBSD.org,
deischen@FreeBSD.org, marcel@FreeBSD.org
Subject: Re: bin/49087: Signals lost in programs linked with libc_r
Date: Wed, 16 Apr 2003 17:37:11 -0400 (EDT)
On Thu, 17 Apr 2003, Enache Adrian wrote:
> On Wed, Apr 16, 2003 at 03:56:42PM +0200, Anton Berezin wrote:
> > Please try the following patch (tested an identical patch on 4.8; not
> > tested with -current):
> >
> > Index: uthread_sig.c
> > ===================================================================
> > RCS file: /home/ncvs/src/lib/libc_r/uthread/uthread_sig.c,v
> > retrieving revision 1.45
> > diff -u -r1.45 uthread_sig.c
> > --- uthread_sig.c 5 Mar 2003 04:28:08 -0000 1.45
> > +++ uthread_sig.c 16 Apr 2003 13:45:36 -0000
>
> It works.
> ( applied on top of lib/libc_r sources cvsup'ed just now & the rest
> of the system built 2 days ago ).
I think the code should just keep invoking the handler for
all unmasked signals:
while (SIGNOTEMPTY(sigset)) {
for (i = 0; i < NSIG; i++) {
if (sigismember(...)) {
_thread_sig_invoke_handler(...)
}
}
/* restore mask */
/* recalculate pending deliverable signals in sigset */
}
--
Dan Eischen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304162140.h3GLe8rs062452>
