Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Jul 2002 18:35:01 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Christian Weisgerber <naddy@FreeBSD.ORG>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: LP64: (int)signal()
Message-ID:  <20020702182320.X11383-100000@gamplex.bde.org>
In-Reply-To: <afpfe2$6f5$1@kemoauc.mips.inka.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 1 Jul 2002, Christian Weisgerber wrote:

> I would like to clean up the last instances of (int)signal(...) in
> the tree.  Any objection to the changes below?

No, but ...

> Other occurrences not worth touching:
> - contrib/opie/opieftpd.c:  contrib, not used
> - libexec/bootpd/bootpd.c:  #ifdef'ed out in favor of sigaction().

... either the sigaction() or the signal() in bootpd.c is probably wrong,
since the sigaction() is missing SA_RESTART.  The signal() case has been
ifdefed out for a long time, so this apparently doesn't matter much.

This has very little to do with LP64 ...

Mike Barcroft <mike@FreeBSD.org> wrote:

> You might want to get rid of the other misuse of `rc' above this and
> just remove the variable.

The use of an gratuitous int variable rc to capture return values
is rampant throughout this code.  In fact, not using it is something
of a violation of the local style, but in the case of signal() I
think it's justifiable because SIG_ERR is so much neater than
changing rc to long and messing around with explicit casts.

Casting signal() to long just gives undefined behaviour on different
machines.  It would be less incorrect to cast a magic integer to a
function pointer like the implementation must do to create SIG_ERR
(at least if the implementation starts with a magic integer), but it
is so much neater to just use SIG_ERR.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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