summaryrefslogtreecommitdiff
path: root/Lib/SocketServer.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-10-18 18:02:07 +0000
committerGuido van Rossum <guido@python.org>2001-10-18 18:02:07 +0000
commitd699cde925a338558b7cfcaeb9198ecac873cc67 (patch)
treed159cc7662cf89ed69f4419d6b5b1ee616304a0c /Lib/SocketServer.py
parentefd3545059793e9d7dd21a553a95bcd81e2a41a8 (diff)
downloadcpython-d699cde925a338558b7cfcaeb9198ecac873cc67.tar.gz
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.
Diffstat (limited to 'Lib/SocketServer.py')
-rw-r--r--Lib/SocketServer.py7
1 files changed, 6 insertions, 1 deletions
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()