From 60c26a17aa381a6e45ff5bbc1c08a3b50b0a346d Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 23 Feb 2026 22:26:17 -0800 Subject: [PATCH] Fix audio playback not stopping when Stop button clicked Use spawn context for clean subprocess isolation and add kill() fallback after terminate() to ensure the audio process is reliably stopped. --- tools/asset_pipeline_gui.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/asset_pipeline_gui.py b/tools/asset_pipeline_gui.py index c784ef35..965b36e0 100755 --- a/tools/asset_pipeline_gui.py +++ b/tools/asset_pipeline_gui.py @@ -1800,7 +1800,8 @@ class AssetPipelineGUI: self._browser_stop_audio() try: import multiprocessing - self._audio_proc = multiprocessing.Process( + ctx = multiprocessing.get_context("spawn") + self._audio_proc = ctx.Process( target=_audio_subprocess, args=(str(file_path),), daemon=True) self._audio_proc.start() self._audio_status_var.set("Playing...") @@ -1818,7 +1819,10 @@ class AssetPipelineGUI: proc = getattr(self, "_audio_proc", None) if proc and proc.is_alive(): proc.terminate() - proc.join(timeout=1) + proc.join(timeout=0.5) + if proc.is_alive(): + proc.kill() + proc.join(timeout=0.5) self._audio_proc = None # ── Hex Dump Preview ──