From: Bryan Duxbury Date: Thu, 2 Sep 2010 15:12:06 +0000 (+0000) Subject: THRIFT-598. py: Allow Python's threading servers to use daemon threads X-Git-Tag: 0.5.0~68 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=f2ef59ffbf7819d7e89e73ba78c5900778cbe293;p=common%2Fthrift.git THRIFT-598. py: Allow Python's threading servers to use daemon threads Patch: David Reiss git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991969 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py index 61529111..8456e2d4 100644 --- a/lib/py/src/server/TServer.py +++ b/lib/py/src/server/TServer.py @@ -93,8 +93,9 @@ class TThreadedServer(TServer): """Threaded server that spawns a new thread per each connection.""" - def __init__(self, *args): + def __init__(self, *args, **kwargs): TServer.__init__(self, *args) + self.daemon = kwargs.get("daemon", False) def serve(self): self.serverTransport.listen() @@ -102,6 +103,7 @@ class TThreadedServer(TServer): try: client = self.serverTransport.accept() t = threading.Thread(target = self.handle, args=(client,)) + t.setDaemon(self.daemon) t.start() except KeyboardInterrupt: raise @@ -128,10 +130,11 @@ class TThreadPoolServer(TServer): """Server with a fixed size pool of threads which service requests.""" - def __init__(self, *args): + def __init__(self, *args, **kwargs): TServer.__init__(self, *args) self.clients = Queue.Queue() self.threads = 10 + self.daemon = kwargs.get("daemon", False) def setNumThreads(self, num): """Set the number of worker threads that should be created""" @@ -168,6 +171,7 @@ class TThreadPoolServer(TServer): for i in range(self.threads): try: t = threading.Thread(target = self.serveThread) + t.setDaemon(self.daemon) t.start() except Exception, x: logging.exception(x)