/*
* call-seq:
*
* io.kgio_wait_readable -> IO
* io.kgio_wait_readable(timeout) -> IO or nil
*
* Blocks the running Thread indefinitely until the IO object is readable
* or if +timeout+ expires. If +timeout+ is specified and expires, +nil+
* is returned.
*
* This method is automatically called (without timeout argument) by default
* whenever kgio_read needs to block on input.
*
* Users of alternative threading/fiber libraries are
* encouraged to override this method in their subclasses or modules to
* work with their threading/blocking methods.
*/
static VALUE kgio_wait_readable(int argc, VALUE *argv, VALUE self)
{
int r = kgio_wait(argc, argv, self, 0);
if (r < 0) rb_sys_fail("kgio_wait_readable");
return r == 0 ? Qnil : self;
}