diff options
Diffstat (limited to 'ext/io/wait/wait.c')
-rw-r--r-- | ext/io/wait/wait.c | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/ext/io/wait/wait.c b/ext/io/wait/wait.c index bde65f9cf8..1252b56a08 100644 --- a/ext/io/wait/wait.c +++ b/ext/io/wait/wait.c @@ -69,15 +69,16 @@ io_wait_event(VALUE io, int event, VALUE timeout) VALUE result = rb_io_wait(io, RB_INT2NUM(event), timeout); if (!RB_TEST(result)) { - return Qnil; + return Qnil; } int mask = RB_NUM2INT(result); if (mask & event) { - return io; - } else { - return Qfalse; + return io; + } + else { + return Qfalse; } } @@ -230,35 +231,37 @@ io_wait(int argc, VALUE *argv, VALUE io) rb_io_event_t events = 0; if (argc < 2 || (argc >= 2 && RB_SYMBOL_P(argv[1]))) { - if (argc > 0) { - timeout = argv[0]; - } - - for (int i = 1; i < argc; i += 1) { - events |= wait_mode_sym(argv[i]); - } - } else if (argc == 2) { - events = RB_NUM2UINT(argv[0]); - - if (argv[1] != Qnil) { - timeout = argv[1]; - } - } else { - // TODO error - return Qnil; + if (argc > 0) { + timeout = argv[0]; + } + + for (int i = 1; i < argc; i += 1) { + events |= wait_mode_sym(argv[i]); + } + } + else if (argc == 2) { + events = RB_NUM2UINT(argv[0]); + + if (argv[1] != Qnil) { + timeout = argv[1]; + } + } + else { + // TODO error + return Qnil; } if (events == 0) { - events = RUBY_IO_READABLE; + events = RUBY_IO_READABLE; } if (events & RUBY_IO_READABLE) { - rb_io_t *fptr = NULL; - RB_IO_POINTER(io, fptr); + rb_io_t *fptr = NULL; + RB_IO_POINTER(io, fptr); - if (rb_io_read_pending(fptr)) { - return Qtrue; - } + if (rb_io_read_pending(fptr)) { + return Qtrue; + } } return io_wait_event(io, events, timeout); |