summaryrefslogtreecommitdiff
path: root/ext/socket/tcpserver.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/socket/tcpserver.c')
-rw-r--r--ext/socket/tcpserver.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/socket/tcpserver.c b/ext/socket/tcpserver.c
index 1f03642f61..59cd7dd3cc 100644
--- a/ext/socket/tcpserver.c
+++ b/ext/socket/tcpserver.c
@@ -69,7 +69,7 @@ tcp_accept(VALUE sock)
* serv = TCPServer.new(2202)
* begin # emulate blocking accept
* sock = serv.accept_nonblock
- * rescue Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::ECONNABORTED, Errno::EPROTO, Errno::EINTR
+ * rescue IO::WaitReadable, Errno::EINTR
* IO.select([serv])
* retry
* end
@@ -80,6 +80,10 @@ tcp_accept(VALUE sock)
*
* TCPServer#accept_nonblock may raise any error corresponding to accept(2) failure,
* including Errno::EWOULDBLOCK.
+ *
+ * If the exception is Errno::EWOULDBLOCK, Errno::AGAIN, Errno::ECONNABORTED, Errno::EPROTO,
+ * it is extended by IO::WaitReadable.
+ * So IO::WaitReadable can be used to rescue the exceptions for retrying accept_nonblock.
*
* === See
* * TCPServer#accept