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