[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [Libevent-users] select() call overflow from libevent for different OS
On Sun, Jun 02, 2013 at 03:57:28PM -0700, William Ahern wrote:
> On Sun, Jun 02, 2013 at 02:05:20PM -0600, J. Scott Dorr wrote:
> > Yeah, FD_SETSIZE is supposed to be informative, not a tuning parameter.
> >
>
> Under POSIX, yes. But some implementations allow the user to define this
> macro, including OS X, OpenBSD, and Solaris. It looks like Linux/glibc
> stopped allowing this--or at least stopped making it easy--from what I can
> tell of the header file in Ubuntu.
>
> It's a bad idea, of course. Though OS X allows the user to set FD_SETSIZE,
> you still need other magic for the kernel to accept the larger value. And I
What magic, exactly?
This interface originated in BSD Unix, and FD_SETSIZE has always been
adjustable by the application. The problem is when one runs into library
interfaces that want to pass fd_sets around; there, if you don't use the
same FD_SETSIZE as they did, you lose. Such interfaces are broken, but
they exist.
But if there is a problem with the kernel (which I doubt) it is a new
problem and whoever caused it should fix it.
On the other hand it is almost always a very bad idea to use select() in
new code, for performance reasons. Even poll is much better.
Thor
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.