From: "James Edward Gray II" <james / grayproductions.net> > > The Socket/Server classes are very low level. GServer is more of a > high-level approach but assumes Ruby's non-native threads are all you > need for server IO and that's really only true in simple applications. > Remember, a large write is all it takes to halt the entire Ruby > process. Just wanted to add that if you do roll your own, sock.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK is available, at least on the Unix platforms. But indeed as has been discussed before, it'd be ***** OUTSTANDING ***** if ruby would just do non-blocking I/O internally. It seems even Windows sockets can be put into non-blocking mode, via ioctlsocket(sock, FIONBIO, ...) I presume if it were utterly trivial for ruby to do non-blocking I/O internally, it would have been done long ago. I know too little about ruby's internals to guess why it's (apparently) difficult. But it would be very, very nice. Regards, Bill