Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Jun 2004 04:34:40 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Sean McNeil <sean@mcneil.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: signal handler priority issue
Message-ID:  <Pine.GSO.4.10.10406110432370.12394-100000@pcnet5.pcnet.com>
In-Reply-To: <1086942520.10026.41.camel@server.mcneil.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 11 Jun 2004, Sean McNeil wrote:

> 
> > No, the problem is because SIGUSR2 is _not_ blocked.  I read
> > "masked off" as "blocked" (the desired behavior).  If the
> > signal handler runs, that means that the signal is not blocked.
> > Your goal is to prevent the signal handler (for SIGUSR2) from
> > running until sigsuspend() is hit.  Once sigsuspend() is hit,
> > then SIGUSR2 becomes unblocked, the signal handler is run,
> > and sigsuspend() returns.
> 
> This is exactly what boehm-gc is doing.  There must be something else
> lurking in here that I've missed.  I have to keep looking at it.

Put print statements just before the sigsuspend() as well as
keeping it in the signal handler for SIGUSR2.  If you see
the print from SIGUSR2 handler before you see the one from
just before sigsuspend(), you know that the signal mask
is not correct when SIGUSR1 is handled.

Signing off for tonight...

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10406110432370.12394-100000>