diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/io/nonblock/nonblock.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/io/nonblock/nonblock.c b/ext/io/nonblock/nonblock.c index ccd8728a31..2c5c298126 100644 --- a/ext/io/nonblock/nonblock.c +++ b/ext/io/nonblock/nonblock.c @@ -79,7 +79,10 @@ rb_io_nonblock_set(VALUE io, VALUE nb) { rb_io_t *fptr; GetOpenFile(io, fptr); - io_nonblock_set(fptr->fd, io_nonblock_mode(fptr->fd), RTEST(nb)); + if (RTEST(nb)) + rb_io_set_nonblock(fptr); + else + io_nonblock_set(fptr->fd, io_nonblock_mode(fptr->fd), RTEST(nb)); return io; } |