[#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:35529] Re: using poll() for rb_io_wait_{read,writ}able()?

From: Evan Phoenix <evan@...>
Date: 2011-03-20 06:57:54 UTC
List: ruby-core #35529
On Mar 19, 2011, at 8:23 PM, Eric Wong wrote:

> Hello, on some OSes it should be easy to swap out some current
> users of select() for poll().  poll() works better on high-numbered
> file descriptors.
> 
> I'm not sure how well poll() works for certain FD types (FIFO/anonymous
> pipes/various socket types), but I know poll() on Linux works for
> everything I've tried, so I might just enable it only under Linux until
> other people can test it on other systems.

For a long time (and maybe still) poll(2) on OS X did not work on fd's for ttys. This is/was because poll(2) was implemented with kqueue(2), which did not support tty fd's.

I attempted to work around the situation once by detecting if the fd was for a tty and using select(2) instead, but in the end it was more hassle than it was worth.

Oh, as I type this, I recall on OS X poll(2) also didn't support fd's for pipes. Same reason as above, kqueue didn't support them.

 - Evan


In This Thread

Prev Next