Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 Nov 2009 03:17:49 +0100 (CET)
From:      Alexander Best <alexbestms@math.uni-muenster.de>
To:        Jilles Tjoelker <jilles@stack.nl>, Alexander Best <alexbestms@math.uni-muenster.de>
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: SIGUNUSED
Message-ID:  <permail-2009110702174980e26a0b00004745-a_best01@message-id.uni-muenster.de>
In-Reply-To: <20091106221150.GA60707@stack.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
Jilles Tjoelker schrieb am 2009-11-06:
> On Fri, Nov 06, 2009 at 10:33:57PM +0100, Alexander Best wrote:
> > some programmers tend to do the following in their apps to install
> > a standard
> > handler for all signals (mostly SIG_IGN):

> > int counter;

> > for (counter = 1; counter < SIGUNUSED; counter++)
> >     signal(counter, SIG_IGN);

> > any objections if we also have SIGUNUSED in our signal.h? seems
> > like a
> > reasonable addition. since the highest signal number (excluding
> > SIGRT[MIN|MAX]) is SIGTHR with 32 we could add

> > #define SIGUNUSED 33

> That code is wrong, SIGUNUSED is not meant to be used in that way. It
> seems to originate from Linux, but it is not available on all
> architectures there, and where it is available it is a valid signal.

> Also, ignoring all signals tends not to be a good idea. For traps,
> it's
> either the same as the default action (FreeBSD unless admin sets
> kern.forcesigexit=0), or it is an infinite loop or other undefined
> behaviour.

oh. i see. i'm not a linux user. that's why i thought SIGUNUSED was designed
exactly for that purpose.

as a side not:
our own easyedit does exactly what you said wasn't a good programming style.
;) check line 554 of contrib/ee/ee.c:

        for (counter = 1; counter < 24; counter++)
                signal(counter, SIG_IGN);

cheers.
alex



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?permail-2009110702174980e26a0b00004745-a_best01>