From: Bill Kelly Date: 2005-04-17T12:48:34+09:00 Subject: Re: Ruby Libraries (was Re: Re:) From: "James Edward Gray II" > > 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