summaryrefslogtreecommitdiffstats
path: root/Lib/SocketServer.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2002-11-22 08:08:44 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2002-11-22 08:08:44 (GMT)
commitf86e8ef33ec22475a051b783b19ee22c5bd3de72 (patch)
tree16617904c9e72eee7e7eea683f7055815c0fe9e8 /Lib/SocketServer.py
parente0273de4329d0f442c696891b856d91721816d72 (diff)
downloadcpython-f86e8ef33ec22475a051b783b19ee22c5bd3de72.zip
cpython-f86e8ef33ec22475a051b783b19ee22c5bd3de72.tar.gz
cpython-f86e8ef33ec22475a051b783b19ee22c5bd3de72.tar.bz2
Patch #550765: Add daemon_threads flag.
Diffstat (limited to 'Lib/SocketServer.py')
-rw-r--r--Lib/SocketServer.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index e1d5ecb..1928ad2 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -56,7 +56,8 @@ instance, a threading UDP server class is created as follows:
class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass
The Mix-in class must come first, since it overrides a method defined
-in UDPServer!
+in UDPServer! Setting the various member variables also changes
+the behavior of the underlying server mechanism.
To implement a service, you must derive a class from
BaseRequestHandler and redefine its handle() method. You can then run
@@ -448,6 +449,10 @@ class ForkingMixIn:
class ThreadingMixIn:
"""Mix-in class to handle each request in a new thread."""
+ # Decides how threads will act upon termination of the
+ # main process
+ daemon_threads = 0
+
def process_request_thread(self, request, client_address):
"""Same as in BaseServer but as a thread.
@@ -466,6 +471,8 @@ class ThreadingMixIn:
import threading
t = threading.Thread(target = self.process_request_thread,
args = (request, client_address))
+ if self.daemon_threads:
+ t.setDaemon (1)
t.start()