From: akr@... Date: 2015-06-16T03:35:44+00:00 Subject: [ruby-core:69600] [Ruby trunk - Feature #11139] [PATCH] socket: accept_nonblock supports "nonblock: false" kwarg Issue #11139 has been updated by Akira Tanaka. Akira Tanaka wrote: > It is not clear that the behavior when sock_nonblock kwarg is not specified. > I feel that it should be defined anyway. > It may reduce the portability problem a bit. "sock_nonblock: false" would be better for the default behavior. It will reduce system calls: it avoids poll() for each blocking read operations and it adds only one fcntl(F_SETFL) for the first nonblocking operation. It is consistent with accept4(). ---------------------------------------- Feature #11139: [PATCH] socket: accept_nonblock supports "nonblock: false" kwarg https://bugs.ruby-lang.org/issues/11139#change-52941 * Author: Eric Wong * Status: Feedback * Priority: Normal * Assignee: Akira Tanaka ---------------------------------------- [PATCH 2/2] socket: accept_nonblock supports "nonblock: false" kwarg An application wanting to do non-blocking accept may want to create a blocking accepted socket, allow it with a kwarg while preserving default behavior. If this patch is accepted, I'd also like to support the opposite for blocking accept calls: a = s.accept(nonblock: true) # blocking accept syscall a.nonblock? # => true s.nonblock? # => false This requires the simple patch in [Feature #11138] I'm unsure if ":nonblock" is a good keyword to use, since it is somewhat confusing ---Files-------------------------------- 0002-socket-accept_nonblock-supports-nonblock-false-kwarg.patch (2.94 KB) -- https://bugs.ruby-lang.org/