public static MutableString ReadNoBlock(RubyIO/*!*/ self, [DefaultProtocol]int bytes, [DefaultProtocol, Optional]MutableString buffer) {
self.RequireReadable();
MutableString result = null;
self.NonBlockingOperation(() => result = Read(self, bytes, buffer), true);
if (result == null) {
throw new EOFError("end of file reached");
}
return result;
}