This issue was solved with changeset r39726.
Motohiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
* thread_pthread.c (USE_SLEEPY_TIMER_THREAD): use more accurate
ifdef condtions.
* thread_pthread.c (timer_thread_sleep): use poll() instead of
select(). select doesn't work if timer_thread_pipe[0] is
greater than FD_SETSIZE.
* thread_pthread.c (USE_SLEEPY_TIMER_THREAD): add a dependency
against poll.