Skip to content

IO#read_nonblock throwing EOFError with "exception: false" #4827

@HoneyryderChuck

Description

@HoneyryderChuck

I'm using exceptionless non-blocking IO API with Jruby 9.1.13.0. In a busy loop I have, it returns (predictably) :wait_readable, until it doesn't, and I get the message:

 EOFError: No message available

I thought that, by using exception: false, that the nonblocking APIs can't throw exception, but rather, :wait_readable/writable when buffer is unavailable, and nil when IO is closed (equivalent to EOFError in older rubies). In fact, this behaviour is consistent in ruby 2.3.0 and newer.

However, I can't seem to find documentation validating this. As of ruby-doc, this is only enforced since 2.4.2, and only for #read_nonblock. But I think this is more a case of the docs not being up-to-date.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions