instance method UNIXServer#accept_nonblock
accept_nonblock -> UnixSocket-
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
接続した UNIXSocket のインスタンスを返します。
accept(2) がエラーになった場合、Socket#accept と同じ例外が 発生します。
Errno::EWOULDBLOCK, Errno::AGAIN, Errno::ECONNABORTED, [[Errno::EPROTO]] のいずれかの例外が 発生した場合は、その例外には IO::WaitReadable が extend されます。それを利用してリトライ可能な例外を掴まえることができます。
require 'socket' serv = UNIXServer.new("/tmp/sock") begin # emulate blocking accept sock = serv.accept_nonblock rescue IO::WaitReadable, Errno::EINTR IO.select([serv]) retry end # sock is an accepted socket.[SEE_ALSO] UNIXServer#accept
class UNIXServer