diff --git a/src/blueapi/worker/task_worker.py b/src/blueapi/worker/task_worker.py index 3756d8390..06055cc93 100644 --- a/src/blueapi/worker/task_worker.py +++ b/src/blueapi/worker/task_worker.py @@ -377,7 +377,7 @@ def run(self) -> None: """ LOGGER.info("Worker starting") self._ctx.run_engine.state_hook = self._on_state_change # type: ignore - self._ctx.run_engine.subscribe(self._on_document) + subs = self._ctx.run_engine.subscribe(self._on_document) if self._broadcast_statuses: self._ctx.run_engine.waiting_hook = self._waiting_hook # type: ignore @@ -388,6 +388,7 @@ def run(self) -> None: self._started.clear() self._stopping.clear() self._stopped.set() + self._ctx.run_engine.unsubscribe(subs) @start_as_current_span(TRACER, "defer") def pause(self, defer=False):