diff options
Diffstat (limited to 'ext/socket/socket.c')
-rw-r--r-- | ext/socket/socket.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index ad2ca5fc67..b6bda8fee8 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -213,8 +213,10 @@ rsock_socketpair0(int domain, int type, int protocol, int sv[2]) fix_cloexec: rb_maygvl_fd_fix_cloexec(sv[0]); rb_maygvl_fd_fix_cloexec(sv[1]); - rsock_make_fd_nonblock(sv[0]); - rsock_make_fd_nonblock(sv[1]); + if (RSOCK_NONBLOCK_DEFAULT) { + rsock_make_fd_nonblock(sv[0]); + rsock_make_fd_nonblock(sv[1]); + } update_max_fd: rb_update_max_fd(sv[0]); @@ -233,8 +235,10 @@ rsock_socketpair0(int domain, int type, int protocol, int sv[2]) rb_fd_fix_cloexec(sv[0]); rb_fd_fix_cloexec(sv[1]); - rsock_make_fd_nonblock(sv[0]); - rsock_make_fd_nonblock(sv[1]); + if (RSOCK_NONBLOCK_DEFAULT) { + rsock_make_fd_nonblock(sv[0]); + rsock_make_fd_nonblock(sv[1]); + } return ret; } #endif /* !SOCK_CLOEXEC */ |