Issue #4560 has been updated by akr (Akira Tanaka).

Target version changed from 2.0.0 to next minor


----------------------------------------
Feature #4560: [PATCH] lib/net/protocol.rb: avoid exceptions in rbuf_fill
https://bugs.ruby-lang.org/issues/4560#change-31887

Author: normalperson (Eric Wong)
Status: Assigned
Priority: Low
Assignee: akr (Akira Tanaka)
Category: lib
Target version: next minor


Blindly hitting IO#read_nonblock() and raising is expensive due
to two factors:

1) method cache being scanned/cleared when the IO::WaitReadable
extended class is GC-ed
2) backtrace generation

This reduces the likelyhood of an IO::WaitReadable exception,
but spurious wakeup can still occur due to bad TCP checksums.

This optimization only applies to non-OpenSSL sockets.  I am
using IO#wait here instead of IO.select() since IO#wait is not
available on OpenSSL sockets.


-- 
http://bugs.ruby-lang.org/