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 _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"