SIGUNUSED

Alexander Best alexbestms at math.uni-muenster.de
Sat Nov 7 02:17:52 UTC 2009


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


More information about the freebsd-hackers mailing list