From: ts Date: 2001-11-16T18:15:55+09:00 Subject: [ruby-talk:25402] Re: BUG? Solaris select or poll does not recover correctly when signaled >>>>> "V" == Ville Mattila writes: V> But I want raise this issue again as I think that this really V> is a ruby bug. Apparently this is specific to Solaris. Can you try to protect all call to select(2) in eval.c against ERESTART. For example, in rb_thread_select() something like this for (;;) { TRAP_BEG; n = select(max, read, write, except, tvp); TRAP_END; #ifdef ERESTART if (n < 0 && (errno == EINTR || errno == ERESTART)) { #else if (n < 0 && errno == EINTR) { #endif You have 3 or 4 call to protect. I was able to see this case (on Solaris 2.7), but it's very difficult to reproduce it, and not yet found where it's documented Guy Decoux