diff options
-rw-r--r-- | ext/kgio/wait.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/kgio/wait.c b/ext/kgio/wait.c index abc10a3..c6ed610 100644 --- a/ext/kgio/wait.c +++ b/ext/kgio/wait.c @@ -21,8 +21,10 @@ static ID id_wait_rd, id_wait_wr; */ static VALUE kgio_wait_readable(VALUE self) { + int fd = my_fileno(self); + errno = EAGAIN; - if (!rb_io_wait_readable(my_fileno(self))) + if (!rb_io_wait_readable(fd)) rb_sys_fail("kgio_wait_readable"); return self; @@ -39,8 +41,10 @@ static VALUE kgio_wait_readable(VALUE self) */ static VALUE kgio_wait_writable(VALUE self) { + int fd = my_fileno(self); + errno = EAGAIN; - if (!rb_io_wait_writable(my_fileno(self))) + if (!rb_io_wait_writable(fd)) rb_sys_fail("kgio_wait_writable"); return self; |