Skip to content

Commit 1654dd0

Browse files
Copilotlstein
andauthored
Fix shutdown hang on session processor thread lock (#108)
* Initial plan * Fix shutdown hang: wake session processor thread on stop() and mark daemon Co-authored-by: lstein <111189+lstein@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
1 parent e214de8 commit 1654dd0

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

invokeai/app/services/session_processor/session_processor_default.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,7 @@ def start(self, invoker: Invoker) -> None:
355355
self._thread = Thread(
356356
name="session_processor",
357357
target=self._process,
358+
daemon=True,
358359
kwargs={
359360
"stop_event": self._stop_event,
360361
"poll_now_event": self._poll_now_event,
@@ -366,6 +367,9 @@ def start(self, invoker: Invoker) -> None:
366367

367368
def stop(self, *args, **kwargs) -> None:
368369
self._stop_event.set()
370+
# Wake the thread if it is sleeping in poll_now_event.wait() or blocked in resume_event.wait() (paused).
371+
self._poll_now_event.set()
372+
self._resume_event.set()
369373

370374
def _poll_now(self) -> None:
371375
self._poll_now_event.set()

0 commit comments

Comments
 (0)