From: Eric Wong <normalperson@...> Date: 2011-04-01T07:26:14+09:00 Subject: [ruby-core:35593] Re: [Ruby 1.9 - Feature #4538] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O Charles Nutter <headius@headius.com> wrote: > Is it possible to interrupt/wakeup a thread that's doing a direct > blocking IO call? I always understood that as the primary reason for > doing the select logic. Yes for non-regular files as long as the signal handlers don't set the SA_RESTART flag. Ruby does not set SA_RESTART anywhere and can interrupt I/O on pipes/sockets at any time. Regular files are special. select() just returns success immediately on regular files and the IO operation will block (refusing to accept signals) while waiting for disk. NFS can be mounted to be interruptable, but you still can't rely on select()/poll() for readiness notification. -- Eric Wong