diff --git a/rclpy/rclpy/__init__.py b/rclpy/rclpy/__init__.py index 7ad9b8630..d5a8a4265 100644 --- a/rclpy/rclpy/__init__.py +++ b/rclpy/rclpy/__init__.py @@ -322,8 +322,10 @@ def spin_until_future_complete( if ``None`` or negative. Don't wait if 0. """ executor = get_global_executor() if executor is None else executor + node_added = False try: - executor.add_node(node) + node_added = executor.add_node(node) executor.spin_until_future_complete(future, timeout_sec) finally: - executor.remove_node(node) + if node_added: + executor.remove_node(node)