Issue #993 has been updated by Joachim Wuttke.


Well, I searched in the source. The "nonblocking" warning comes from io.c:io_fread. It is issued only if
a C library function (getc) raises EAGAIN or EWOULDBLOCK. This is consistent with my observation that
the warning appears only at irregular intervals - namely, if some anomaly occurs during execution of the
`..` statement.

I think this is a very unsatisfactory state of affairs: If "IO#read" should not be used, (1) a warning should be given at "compile time", not at run time, and (2) it should not be used internally by the implementation of `..` (which I am still not able to locate in the source code).

----------------------------------------
http://redmine.ruby-lang.org/issues/show/993

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