On Fri, Mar 16, 2012 at 7:24 PM, Eric Wong <normalperson / yhbt.net> wrote:
>> The only cases that break are cases that check e.class == EAGAIN,
>> which is probably not a good pattern anyway.
>
> I also noticed some test failures with your patch. (But I think
> the minor incompatibility is acceptable for 2.0.0)
>
> test_read_nonblock(OpenSSL::TestPair) [$top_srcdir/test/openssl/test_pair.rb:145]:
> [OpenSSL::SSL::SSLError] exception expected, not
> Class: <OpenSSL::SSL::SSLErrorReaable>
...
> test_dgram_pair(TestSocket_UNIXSocket) [$top_srcdir/test/socket/test_unix.rb:348]:
> [Errno::EAGAIN] exception expected, not
> Class: <IO::EAGAINReadable>

Yes, these are expected failures in my eyes, and not indicative of
typical exception-handling or nonblocking-IO use cases.

And I agree 100% about adding an exception-free nonblocking API. This
plasters over the problems 1.9.x introduced, but doesn't solve the
root cause.

- Charlie