bin/49087: Signals lost in programs linked with libc_r
Daniel Eischen
eischen at pcnet1.pcnet.com
Wed Apr 16 14:40:10 PDT 2003
The following reply was made to PR bin/49087; it has been noted by GNATS.
From: Daniel Eischen <eischen at pcnet1.pcnet.com>
To: Enache Adrian <enache at rdslink.ro>
Cc: Anton Berezin <tobez at FreeBSD.org>,
FreeBSD-gnats-submit at FreeBSD.org, fjoe at FreeBSD.org,
deischen at FreeBSD.org, marcel at 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
More information about the freebsd-bugs
mailing list