From 33c17ea10bf678dcdaefd0c3433eb57638ce19f9 Mon Sep 17 00:00:00 2001 From: cyan-at Date: Thu, 7 Aug 2025 11:28:38 -0700 Subject: [PATCH] fix: rosbridge_websocket cooperative shutdown (backport #1048) * rosbridge_websocket cooperative shutdown necessary changes * switch back to singlethread, check for ok BEFORE spinning also * address MatthijsBurgh comments --- rosbridge_server/scripts/rosbridge_websocket.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rosbridge_server/scripts/rosbridge_websocket.py b/rosbridge_server/scripts/rosbridge_websocket.py index e49b46db4..2edf63ae1 100755 --- a/rosbridge_server/scripts/rosbridge_websocket.py +++ b/rosbridge_server/scripts/rosbridge_websocket.py @@ -369,9 +369,10 @@ def main(args=None): executor.add_node(node) def spin_ros(): - executor.spin_once(timeout_sec=0.01) if not rclpy.ok(): shutdown_hook() + return + executor.spin_once(timeout_sec=0.01) spin_callback = PeriodicCallback(spin_ros, 1) spin_callback.start() @@ -382,6 +383,7 @@ def spin_ros(): except KeyboardInterrupt: print("Exiting due to SIGINT") finally: + spin_callback.stop() shutdown_hook() # shutdown hook to stop the server