diff options
-rw-r--r-- | sleekxmpp/xmlstream/scheduler.py | 3 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sleekxmpp/xmlstream/scheduler.py b/sleekxmpp/xmlstream/scheduler.py index 8ec73164..6f6e0278 100644 --- a/sleekxmpp/xmlstream/scheduler.py +++ b/sleekxmpp/xmlstream/scheduler.py @@ -121,7 +121,7 @@ class Scheduler(object): #: Lock for accessing the task queue. self.schedule_lock = threading.RLock() - def process(self, threaded=True): + def process(self, threaded=True, daemon=False): """Begin accepting and processing scheduled tasks. :param bool threaded: Indicates if the scheduler should execute @@ -130,6 +130,7 @@ class Scheduler(object): if threaded: self.thread = threading.Thread(name='scheduler_process', target=self._process) + self.thread.daemon = daemon self.thread.start() else: self._process() diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index 891f275a..c5c8581b 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -282,6 +282,7 @@ class XMLStream(object): self.__event_handlers = {} self.__event_handlers_lock = threading.Lock() self.__filters = {'in': [], 'out': [], 'out_sync': []} + self._use_daemons = False self._id = 0 self._id_lock = threading.Lock() @@ -1206,10 +1207,11 @@ class XMLStream(object): else: threaded = kwargs.get('threaded', True) - self.scheduler.process(threaded=True) + self.scheduler.process(threaded=True, daemon=self._use_daemons) def start_thread(name, target): self.__thread[name] = threading.Thread(name=name, target=target) + self.__thread[name].daemon = self._use_daemons self.__thread[name].start() for t in range(0, HANDLER_THREADS): @@ -1451,6 +1453,7 @@ class XMLStream(object): name="Event_%s" % str(func), target=self._threaded_event_wrapper, args=(func, args)) + x.daemon = self._use_daemons x.start() else: func(*args) |