>
>
> On Wed, 27 Aug 1997, Richard Gooch wrote:
>
> > Hm. Perhaps a simple and cheap alternative is to use find_first_bit on
> > each fd_set, then take the minimum index of the three, and start
> > normal scanning from there. Of course, it won't help in the case where
> > you are selecting on descriptors 100,200,300,400,500,600,700,800,900
> > or some other such sparse set.
>
> I doubt that sort of input is terribly common, but you never know. On the
> other hand, output like that is probably really common. Consider an IRC
> server (or say Squid) which is doing select()s on a thousand network
> sockets. Only a small handful will have any events associated with them.
Let me inject here that actually there is a problem with linux + ircd.
Linux never was really good at running ircd, and it still isnt (at least
2.0.x-series), but then again the only really good one is freebsd. Solaris
works so-so.
I get mysterious TCP lockups, dropped TCP connections etc, when my irc
server reaches like 300-400 or more simultanious users.
Another thing is that linux should be able to handle at least 4096 fd /
process. We tried to up this from 1024 but got some nasty oopses and
alike.
-----
Mikael Abrahamsson email: swmike@df.lth.se