From b7542fb536115297f9a17aefb9fb30cd5f3e3fdc Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Fri, 6 Nov 2015 18:09:54 +0100 Subject: [PATCH] Avoid daemon threads See #291 --- vdirsyncer/cli/utils.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vdirsyncer/cli/utils.py b/vdirsyncer/cli/utils.py index 406a9b6..812bef6 100644 --- a/vdirsyncer/cli/utils.py +++ b/vdirsyncer/cli/utils.py @@ -410,12 +410,11 @@ class WorkerQueue(object): self._shutdown_handlers = [] def shutdown(self): - if not self._queue.unfinished_tasks: - for handler in self._shutdown_handlers: - try: - handler() - except Exception: - pass + while self._shutdown_handlers: + try: + self._shutdown_handlers.pop()() + except Exception: + pass def _worker(self): while True: @@ -439,7 +438,6 @@ class WorkerQueue(object): return t = click_threading.Thread(target=self._worker) - t.daemon = True t.start() self._workers.append(t) @@ -452,6 +450,8 @@ class WorkerQueue(object): yield ui_worker.run() self._queue.join() + for worker in self._workers: + worker.join() if self._exceptions: sys.exit(1)