[PATCH] socket: support accept `sock_nonblock: (true|false)'
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.
This is analogous to the SOCK_NONBLOCK flag in the Linux `accept4'
While this has little obvious effect for Ruby API users (which
can emulate blocking behavior) this will reduce syscalls made
internally by Ruby. Forcing blocking will preserve "wake-one"
behavior in the OS kernel to avoid a "thundering herd" problem.
In all cases, existing Ruby 2.2 behavior is preserved by default
to maximize compatibility, especially when sharing sockets with
accept' andsysaccept' calls will create sockets which are
blocking by default.
`accept_nonblock', calls will create sockets which are non-blocking