From: nobuyoshi nakada Date: 2005-05-25T15:28:08+09:00 Subject: Re: select() on non-sockets in eval.c Hi, At Wed, 25 May 2005 01:49:39 +0900, BG - Ben Armstrong wrote in [ruby-core:05088]: > In eval.c, select is used to synchronize IO in ruby threads, but on some > platforms select() does not work on non-sockets. We are told that > Windows is just such a platform. However, there are no exceptions in > the code to handle the Windows case, which is a bit puzzling. > Apparently, by some accident of the Windows select() implementation, It is replaced within win32/win32.[ch]. > Now, I'd like to fix this in the OpenVMS ruby port[1], but I don't know > how to "fake" a correct response from select() here: > > n = select(max+1, &readfds, &writefds, &exceptfds, delay_ptr); > > What should n, readfds, writefds and exceptfds be after this call? n should be the number of non-socket fds, and they should be set in readfds, writefds and exceptfds respectively. What do they hold after the failure? -- Nobu Nakada