/*
 * call-seq:
 *
 *      Kgio.tryread(io, maxlen)           ->  buffer
 *      Kgio.tryread(io, maxlen, buffer)   ->  buffer
 *
 * Returns nil on EOF.
 * Returns :wait_readable if EAGAIN is encountered.
 *
 * Maybe used in place of PipeMethods#kgio_tryread for non-Kgio objects
 */
static VALUE s_tryread(int argc, VALUE *argv, VALUE mod)
{
        if (argc <= 1)
                rb_raise(rb_eArgError, "wrong number of arguments");
        return my_read(0, argc - 1, &argv[1], argv[0]);
}