[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>

10 messages 2011/03/07

[#35476] [Ruby 1.9 - Bug #4489][Open] [PATCH] Encodings with /-(unix|dos|mac)\Z/ — "James M. Lawrence" <quixoticsycophant@...>

20 messages 2011/03/10

[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>

14 messages 2011/03/24

[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>

33 messages 2011/03/28

[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>

12 messages 2011/03/28

[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>

9 messages 2011/03/29

[ruby-core:35593] Re: [Ruby 1.9 - Feature #4538] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O

From: Eric Wong <normalperson@...>
Date: 2011-03-31 22:26:14 UTC
List: ruby-core #35593
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

In This Thread