From 8ef9fe2cabfb8ce809393ea48e7429d03a09e478 Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Thu, 11 Dec 2025 08:38:19 -0500 Subject: [PATCH] fix: check platform compat for windows signals --- lib/crewai/src/crewai/events/types/system_events.py | 6 +++--- lib/crewai/src/crewai/telemetry/telemetry.py | 9 ++++++--- lib/crewai/tests/events/types/test_system_events.py | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/crewai/src/crewai/events/types/system_events.py b/lib/crewai/src/crewai/events/types/system_events.py index b17b14c04..1e4575e01 100644 --- a/lib/crewai/src/crewai/events/types/system_events.py +++ b/lib/crewai/src/crewai/events/types/system_events.py @@ -19,9 +19,9 @@ class SignalType(IntEnum): SIGTERM = signal.SIGTERM SIGINT = signal.SIGINT - SIGHUP = signal.SIGHUP - SIGTSTP = signal.SIGTSTP - SIGCONT = signal.SIGCONT + SIGHUP = getattr(signal, "SIGHUP", 1) + SIGTSTP = getattr(signal, "SIGTSTP", 20) + SIGCONT = getattr(signal, "SIGCONT", 18) class SigTermEvent(BaseEvent): diff --git a/lib/crewai/src/crewai/telemetry/telemetry.py b/lib/crewai/src/crewai/telemetry/telemetry.py index 84e089a09..016bda10e 100644 --- a/lib/crewai/src/crewai/telemetry/telemetry.py +++ b/lib/crewai/src/crewai/telemetry/telemetry.py @@ -174,9 +174,12 @@ class Telemetry: self._register_signal_handler(signal.SIGTERM, SigTermEvent, shutdown=True) self._register_signal_handler(signal.SIGINT, SigIntEvent, shutdown=True) - self._register_signal_handler(signal.SIGHUP, SigHupEvent, shutdown=False) - self._register_signal_handler(signal.SIGTSTP, SigTStpEvent, shutdown=False) - self._register_signal_handler(signal.SIGCONT, SigContEvent, shutdown=False) + if hasattr(signal, "SIGHUP"): + self._register_signal_handler(signal.SIGHUP, SigHupEvent, shutdown=False) + if hasattr(signal, "SIGTSTP"): + self._register_signal_handler(signal.SIGTSTP, SigTStpEvent, shutdown=False) + if hasattr(signal, "SIGCONT"): + self._register_signal_handler(signal.SIGCONT, SigContEvent, shutdown=False) def _register_signal_handler( self, diff --git a/lib/crewai/tests/events/types/test_system_events.py b/lib/crewai/tests/events/types/test_system_events.py index 2109d428b..874cbdd47 100644 --- a/lib/crewai/tests/events/types/test_system_events.py +++ b/lib/crewai/tests/events/types/test_system_events.py @@ -27,9 +27,9 @@ class TestSignalType: """Verify SignalType maps to correct signal numbers.""" assert SignalType.SIGTERM == signal.SIGTERM assert SignalType.SIGINT == signal.SIGINT - assert SignalType.SIGHUP == signal.SIGHUP - assert SignalType.SIGTSTP == signal.SIGTSTP - assert SignalType.SIGCONT == signal.SIGCONT + assert SignalType.SIGHUP == getattr(signal, "SIGHUP", 1) + assert SignalType.SIGTSTP == getattr(signal, "SIGTSTP", 20) + assert SignalType.SIGCONT == getattr(signal, "SIGCONT", 18) class TestSignalEvents: