mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-15 07:35:27 +03:00
Removed log calls from signal handlers
python's logging calls are not re-entrant, which caused at least one of these to deadlock randomly.
This commit is contained in:
parent
bdb672efe4
commit
f407776e9a
@ -76,16 +76,8 @@ def listen_to_audio(
|
|||||||
stop_event = mp.Event()
|
stop_event = mp.Event()
|
||||||
audio_threads: list[threading.Thread] = []
|
audio_threads: list[threading.Thread] = []
|
||||||
|
|
||||||
def exit_process() -> None:
|
|
||||||
for thread in audio_threads:
|
|
||||||
thread.join()
|
|
||||||
|
|
||||||
logger.info("Exiting audio detector...")
|
|
||||||
|
|
||||||
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
||||||
logger.debug(f"Audio process received signal {signalNumber}")
|
|
||||||
stop_event.set()
|
stop_event.set()
|
||||||
exit_process()
|
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, receiveSignal)
|
signal.signal(signal.SIGTERM, receiveSignal)
|
||||||
signal.signal(signal.SIGINT, receiveSignal)
|
signal.signal(signal.SIGINT, receiveSignal)
|
||||||
@ -104,6 +96,11 @@ def listen_to_audio(
|
|||||||
audio_threads.append(audio)
|
audio_threads.append(audio)
|
||||||
audio.start()
|
audio.start()
|
||||||
|
|
||||||
|
for thread in audio_threads:
|
||||||
|
thread.join()
|
||||||
|
|
||||||
|
logger.info("Exiting audio detector...")
|
||||||
|
|
||||||
|
|
||||||
class AudioTfl:
|
class AudioTfl:
|
||||||
def __init__(self, stop_event: mp.Event, num_threads=2):
|
def __init__(self, stop_event: mp.Event, num_threads=2):
|
||||||
|
|||||||
@ -92,7 +92,6 @@ def run_detector(
|
|||||||
stop_event = mp.Event()
|
stop_event = mp.Event()
|
||||||
|
|
||||||
def receiveSignal(signalNumber, frame):
|
def receiveSignal(signalNumber, frame):
|
||||||
logger.info("Signal to exit detection process...")
|
|
||||||
stop_event.set()
|
stop_event.set()
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, receiveSignal)
|
signal.signal(signal.SIGTERM, receiveSignal)
|
||||||
|
|||||||
@ -22,7 +22,6 @@ def manage_recordings(config: FrigateConfig) -> None:
|
|||||||
stop_event = mp.Event()
|
stop_event = mp.Event()
|
||||||
|
|
||||||
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
||||||
logger.debug(f"Recording manager process received signal {signalNumber}")
|
|
||||||
stop_event.set()
|
stop_event.set()
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, receiveSignal)
|
signal.signal(signal.SIGTERM, receiveSignal)
|
||||||
|
|||||||
@ -20,7 +20,6 @@ def manage_review_segments(config: FrigateConfig) -> None:
|
|||||||
stop_event = mp.Event()
|
stop_event = mp.Event()
|
||||||
|
|
||||||
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
|
||||||
logger.debug(f"Manage review segments process received signal {signalNumber}")
|
|
||||||
stop_event.set()
|
stop_event.set()
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, receiveSignal)
|
signal.signal(signal.SIGTERM, receiveSignal)
|
||||||
|
|||||||
@ -390,7 +390,6 @@ def capture_camera(name, config: CameraConfig, shm_frame_count: int, process_inf
|
|||||||
stop_event = mp.Event()
|
stop_event = mp.Event()
|
||||||
|
|
||||||
def receiveSignal(signalNumber, frame):
|
def receiveSignal(signalNumber, frame):
|
||||||
logger.debug(f"Capture camera received signal {signalNumber}")
|
|
||||||
stop_event.set()
|
stop_event.set()
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, receiveSignal)
|
signal.signal(signal.SIGTERM, receiveSignal)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user