Commit f90984b8 authored by Ralf Schmitt's avatar Ralf Schmitt

prevent hangs in server.Server._do_accept by making listening sockets nonblocking.

--HG--
extra : transplant_source : %0Ed%0B%01T%13%5DU0%C5%EF/%EC%A9%0D%A1%F1%E9%BDp
parent 56437e0f
......@@ -193,5 +193,6 @@ def _tcp_listener(address, backlog=50, reuse_addr=None):
sock.setsockopt(_socket.SOL_SOCKET, _socket.SO_REUSEADDR, reuse_addr)
sock.bind(address)
sock.listen(backlog)
sock.setblocking(0)
return sock
......@@ -111,7 +111,14 @@ class StreamServer(BaseServer):
if self.full():
self.stop_accepting()
return
client_socket, address = self.socket.accept()
try:
client_socket, address = self.socket.accept()
except socket.error, err:
if err[0]==errno.EAGAIN:
sys.exc_clear()
return
raise
self.delay = self.min_delay
client_socket = socket.socket(_sock=client_socket)
spawn = self.spawn
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment