I haven't tested this, but I believe that if you have > 64 threads blocking on select with Ruby on windows, it allows
this, though select itself only honors the first 64 sockets in the fd_set.
Also in Linux if you pass select a file descriptor with a number > FD_SETSIZE it is ignored when passed into select.
I'd move that if users call select with 'too many sockets' [whether all together or not] that it throw them an exception
explaining such. This would bring sanity to the multi-threaded socket world.
More info available upon request.
Thanks!
-R |