Patch #550765: Add daemon_threads flag.
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 @@
         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 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 @@
         import threading
         t = threading.Thread(target = self.process_request_thread,
                              args = (request, client_address))
+        if self.daemon_threads:
+            t.setDaemon (1)
         t.start()