From: Bill Kelly Date: 2006-08-09T06:03:14+09:00 Subject: Nonblocking Windows Ruby popen? (was: Re: C Threads and Ruby) From: "Francis Cianfrocca" > > > The impression I got from the windows select() documentation > > was that it only works with winsock sockets. > > Ruby's Kernel#select is quite different from the native select. It's deeply > intertwined with the green threads implementation. It basically knows how to > handle anything that can be wrapped in a Ruby IO object. This has been percolating in the back of my mind for a month or so now. :) I presume, even though Ruby may be able to handle anything that can be wrapped in a Ruby IO object, there's no implication that this object can be handled in a green-thread-friendly way without blocking all ruby threads? I'm currently in search of a green-thread-friendly popen() in Windows for Ruby. I just tried the win32-open3 package, but a #gets on the pipe still blocks the whole process. Does anyone know whether a nonblocking popen() is *possible* in Windows Ruby? And if so, is there any existing implementation? If not, what's the best substitute? All I can think of offhand is TCP connections on localhost/loopback. Thanks, Regards, Bill