Sam Roberts <sroberts / uniserve.com> wrote: > Can anybody give me any hints as to what I should be looking for? What > can cause sleep(0) to wake up? The documentation is wrong. sleep(0) returns immediately. sleep with *zero* arguments sleeps forever. static VALUE rb_f_sleep(argc, argv) int argc; VALUE *argv; { int beg, end; beg = time(0); if (argc == 0) { rb_thread_sleep_forever(); } else if (argc == 1) { rb_thread_wait_for(rb_time_interval(argv[0])); } else { rb_raise(rb_eArgError, "wrong number of arguments"); } end = time(0) - beg; return INT2FIX(end); } Cheers, Navin.