Feature #4849

io/wait should have a way to avoid FIONREAD

Added by normalperson (Eric Wong) almost 9 years ago. Updated about 5 years ago.

Target version:


I would like an API method for io/wait which bypasses FIONREAD. Some IO
objects I work with (e.g. Linux eventfd[1]) 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 open for IO#wait_writable.

Meanwhile, I will use 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 mame (Yusuke Endoh) about 8 years ago

  • Status changed from Open to Assigned
  • Assignee set to nobu (Nobuyoshi Nakada)

Updated by mame (Yusuke Endoh) over 7 years ago

  • Target version changed from 2.0.0 to 2.6

Updated by nobu (Nobuyoshi Nakada) about 5 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]

Also available in: Atom PDF