Project

General

Profile

Actions

Feature #4849

closed

io/wait should have a way to avoid FIONREAD

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

Status:
Closed
Target version:
[ruby-core:36805]

Description

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
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).

[1] http://bogomips.org/sleepy_penguin/SleepyPenguin/EventFD.html

Updated by mame (Yusuke Endoh) about 12 years ago

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

Updated by mame (Yusuke Endoh) over 11 years ago

  • Target version changed from 2.0.0 to 2.6
Actions #3

Updated by nobu (Nobuyoshi Nakada) almost 9 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]
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0