From: Eric Wong Date: 2011-03-02T04:16:53+09:00 Subject: Re: question: threads behaviour Robert Klemme wrote: > > 1.8 will schedule other threads if the blocking IO is for a socket/pipe > > and uses the normal Ruby IO interfaces (or the extension author was > > careful).  Filesystem I/O (including NFS) can block the entire process > > in 1.8. > > Where do you take that from? AFAIK internally Ruby 1.8.* uses non > blocking IO calls in combination with select() to be able to let other > threads work while IO is under way. Yes, I meant "blocking" from a user-visible perspective, not from a kernel perspective. If there's an EAGAIN it'll block the current thread from a user perspective and schedule others using select(), but not actually block on the syscall that caused EAGAIN. -- Eric Wong