Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > UNIXServerクラス > accept_nonblock
accept_nonblock -> UnixSocket
[permalink][rdoc]ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
接続した UNIXSocket のインスタンスを返します。
accept(2) がエラーになった場合、Socket#accept と同じ例外が 発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN, 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