>>>>> "C" == Chad Fowler <chad / chadfowler.com> writes:

C> That's as far as I can go I guess.  I don't know how to solve the 
C> problem.  I wish I understood this all better.  Anyone want to do a 
C> brief explanation after the bug is fixed? ;)

 Well, if I've understood (with this new year I'm still stupid :-))

  * ruby, compiled without pthread, use setitimer(ITIMER_VIRTUAL) which is
    decremented only when the process is running

  * ruby, compiled with pthread, use nanosleep() or select() which expire
    even if the process is not running

 when rb_thread_wait_for() is called, in this case, it call select(5.000)
 (process not running) which is interrupted by thread_timer() (the first
 select() expire)


Guy Decoux