From: Bill Kelly Date: 2006-06-21T08:08:26+09:00 Subject: Re: C Threads and Ruby From: "Francis Cianfrocca" > > Try this: create a pipe or socketpair in native code. Then you can create a > ruby IO object from the file-descriptor of the read-side of the pipe. Then > call Ruby's select (NOT the native select) on the IO object. When it selects > readable, you run your Ruby code. This blocks neither your native threads > nor your other Ruby threads. > > I know this works in both Unix and Windows, but the native code is slightly > different. Cool. I didn't realize one could wrap a native win32 pipe handle in some way that will work with ruby's select! The impression I got from the windows select() documentation was that it only works with winsock sockets. This makes me wonder why ruby wouldn't already be creating the "proper kind" of pipes and socketpairs that work with its select(), if it's that easy to create one myself and wrap it in a ruby IO object? Strange . . . Thanks, Bill