>>>>> "r" == ry  <ry.d4hl / googlemail.com> writes:

r> it should not exit.

 Why ?

vgs% cat a.c
#include <stdio.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <assert.h>

int main()
{
    fd_set readfds;
    int fd = socket(AF_INET, SOCK_STREAM, 0);
    assert(fd > 0);
    FD_ZERO(&readfds);
    FD_SET(fd, &readfds);
    select(fd + 1, &readfds, 0, 0, NULL);
    return 0;
}
vgs% 

vgs% ./a.out
vgs% 


r> Ruby 1.9.0 has the correct behavior

 what is your version of ruby ?

vgs% ruby -v test.rb
ruby 1.9.0 (2008-03-16 revision 15786) [i686-linux]
starting test
entering rb_thread_wait_fd
leaving rb_thread_wait_fd
vgs% 



Guy Decoux