close_request() (which can send a socket.shutdown()) must be called by the child process in a forking server.  The parent must merely close the socket handle.
This commit is contained in:
Kristján Valur Jónsson 2009-07-05 20:56:57 +00:00
parent 463dc4bf26
commit f5b8ea9128

View file

@ -532,17 +532,19 @@ class ForkingMixIn:
if self.active_children is None:
self.active_children = []
self.active_children.append(pid)
self.close_request(request)
request.close() #close socket handle in parent process
return
else:
# Child process.
# This must never return, hence os._exit()!
try:
self.finish_request(request, client_address)
self.close_request(request)
os._exit(0)
except:
try:
self.handle_error(request, client_address)
self.close_request(request)
finally:
os._exit(1)