From: Guido van Rossum Date: Thu, 18 Oct 2001 18:02:07 +0000 (+0000) Subject: SF bug #471720: ThreadingMixIn/TCPServer forgets close X-Git-Tag: v2.2.1c1~1194 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a5343ccd28245d96feb21d1457802b97a76aa210;p=python SF bug #471720: ThreadingMixIn/TCPServer forgets close Solved with a helper method that calls finish_request() and then close_request(). The code is by Max Neunhöffer. --- diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index 00064ba896..5128e17548 100644 --- a/Lib/SocketServer.py +++ b/Lib/SocketServer.py @@ -448,10 +448,15 @@ class ForkingMixIn: class ThreadingMixIn: """Mix-in class to handle each request in a new thread.""" + def process_request_thread(self, request, client_address): + """Same as in BaseServer but as a thread.""" + self.finish_request(request, client_address) + self.close_request(request) + def process_request(self, request, client_address): """Start a new thread to process the request.""" import threading - t = threading.Thread(target = self.finish_request, + t = threading.Thread(target = self.process_request_thread, args = (request, client_address)) t.start() diff --git a/Misc/ACKS b/Misc/ACKS index e7400e9e51..b17219a950 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -296,6 +296,7 @@ Takahiro Nakayama Travers Naran Fredrik Nehr Chad Netzer +Max Neunhöffer George Neville-Neil Oscar Nierstrasz Hrvoje Niksic diff --git a/Misc/NEWS b/Misc/NEWS index e2e9683344..e89b789ba1 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -86,6 +86,9 @@ Library which indicates whether output is intended for the header 'Q' encoding. +- The SocketServer.ThreadingMixIn class now closes the request after + finish_request() returns. (Not when it errors out though.) + Tools/Demos - Demo/dns was removed. It no longer serves any purpose; a package