From 4239110af51509aa6a2d26dd84220117b168f446 Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Mon, 19 Jun 2023 08:05:26 -0600 Subject: [PATCH] Close threads when stop event is sent --- frigate/events/audio.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frigate/events/audio.py b/frigate/events/audio.py index 4a641feb6..00e9990db 100644 --- a/frigate/events/audio.py +++ b/frigate/events/audio.py @@ -43,10 +43,14 @@ FFMPEG_COMMAND = ( def listen_to_audio(config: FrigateConfig) -> None: stop_event = mp.Event() + audio_threads: list[threading.Thread] = [] def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None: stop_event.set() + for thread in audio_threads: + thread.join() + signal.signal(signal.SIGTERM, receiveSignal) signal.signal(signal.SIGINT, receiveSignal) @@ -56,7 +60,9 @@ def listen_to_audio(config: FrigateConfig) -> None: for camera in config.cameras.values(): if camera.enabled and camera.audio.enabled: - AudioEventMaintainer(camera, stop_event).start() + audio = AudioEventMaintainer(camera, stop_event) + audio_threads.append(audio) + audio.start() class AudioTfl: