svn commit: r215572 - stable/8/sys/sys
Jilles Tjoelker
jilles at stack.nl
Sun Nov 21 13:35:33 UTC 2010
On Sun, Nov 21, 2010 at 12:42:24PM +0000, Gavin Atkinson wrote:
> On Sat, 20 Nov 2010, Jilles Tjoelker wrote:
> > Author: jilles
> > Date: Sat Nov 20 16:46:16 2010
> > New Revision: 215572
> > URL: http://svn.freebsd.org/changeset/base/215572
> > Log:
> > MFC r215183: Make POLL_ERR and POLL_HUP different.
> > The kernel currently does not generate any of the POLL_* constants, but
> > some applications use them and break if they are not all distinct.
> Is this a good idea to merge to a stable branch? Presumably some of those
> same applications will now break due to the constants changing?
The typical usage appears to be
switch (si->si_code) {
case POLL_IN: ...; break;
...
case POLL_ERR: ...; break;
case POLL_HUP: ...; break;
}
This doesn't compile if some of the constants are equal.
Boost has worked around FreeBSD's weirdness by placing a
#if defined(POLL_ERR) && defined(POLL_HUP) && (POLL_ERR - POLL_HUP)
around the case POLL_HUP. This #if does not hurt systems that have the
POLL_* values all distinct.
Given that the kernel does not generate these anyway, I considered this
safe enough. True SIGIO, which is similar to SIGPOLL, always puts
si_code=SI_KERNEL.
--
Jilles Tjoelker
More information about the svn-src-stable
mailing list