io/wait should have a way to avoid FIONREAD
I would like an API method for io/wait which bypasses FIONREAD. Some IO
objects I work with (e.g. Linux eventfd) to not support FIONREAD.
I can implement any proposed API for io/wait, but I don't know what it should
be. Perhaps just "IO#wait_readable", since I also have
http://redmine.ruby-lang.org/issues/4646 open for IO#wait_writable.
Meanwhile, I will use IO.select. I believe IO#wait_* will be a better
API that is easier-to-use and potentially faster (it can bypass array
scanning and use poll() for high FDs in Linux).
Updated by nobu (Nobuyoshi Nakada) about 6 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
Applied in changeset r50262.
wait.c: poll over nread
- ext/io/wait/wait.c (io_ready_p, io_wait_readable): try polling first and check FIONREAD optionally to see if EOF. [ruby-core:36805] [Feature #4849]