diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index 73cd2196761..08f005b0864 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()