From b5faac73a44f8c0e86b37e448abcf6bb3c9de523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Valur=20J=C3=B3nsson?= Date: Fri, 3 Jul 2009 23:07:07 +0000 Subject: http://bugs.python.org/issue6381 some platforms may raise ENOTCONN if the stack has disconnected the socket on behalf of the peer. --- Lib/SocketServer.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index 73cd219..08f005b 100644 --- a/Lib/SocketServer.py +++ b/Lib/SocketServer.py @@ -445,7 +445,12 @@ class TCPServer(BaseServer): def close_request(self, request): """Called to clean up an individual request.""" - request.shutdown(socket.SHUT_WR) + try: + #explicitly shutdown. socket.close() merely releases + #the socket and waits for GC to perform the actual close. + request.shutdown(socket.SHUT_WR) + except socket.error: + pass #some platforms may raise ENOTCONN here request.close() -- cgit v0.12