From 5b16ddb082ab0f03a0bcb45baa9832db8d8b411e Mon Sep 17 00:00:00 2001 From: Jacob Perron Date: Wed, 3 Aug 2022 15:25:51 -0700 Subject: [PATCH 1/4] Exit with code 0 if ExternalShutdownException is raised This is an expected exception from the executor on a keyboard interrupt, so I don't think it should be an error. Signed-off-by: Jacob Perron --- demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py | 4 +--- demo_nodes_py/demo_nodes_py/topics/listener.py | 4 +--- demo_nodes_py/demo_nodes_py/topics/listener_qos.py | 4 +--- demo_nodes_py/demo_nodes_py/topics/listener_serialized.py | 4 +--- demo_nodes_py/demo_nodes_py/topics/talker.py | 4 +--- demo_nodes_py/demo_nodes_py/topics/talker_qos.py | 4 +--- .../rclpy/quality_of_service_demo_py/deadline.py | 4 +--- .../rclpy/quality_of_service_demo_py/incompatible_qos.py | 4 +--- .../rclpy/quality_of_service_demo_py/message_lost_listener.py | 4 +--- .../quality_of_service_demo_py/qos_overrides_listener.py | 4 +--- .../rclpy/quality_of_service_demo_py/qos_overrides_talker.py | 4 +--- 11 files changed, 11 insertions(+), 33 deletions(-) diff --git a/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py b/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py index d67f193d1..81d8c9d00 100644 --- a/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py +++ b/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py @@ -41,10 +41,8 @@ def main(args=None): try: rclpy.spin(node) - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: # Destroy the node explicitly # (optional - Done automatically when node is garbage collected) diff --git a/demo_nodes_py/demo_nodes_py/topics/listener.py b/demo_nodes_py/demo_nodes_py/topics/listener.py index f355af9b6..feba805c9 100644 --- a/demo_nodes_py/demo_nodes_py/topics/listener.py +++ b/demo_nodes_py/demo_nodes_py/topics/listener.py @@ -37,10 +37,8 @@ def main(args=None): node = Listener() try: rclpy.spin(node) - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: node.destroy_node() rclpy.try_shutdown() diff --git a/demo_nodes_py/demo_nodes_py/topics/listener_qos.py b/demo_nodes_py/demo_nodes_py/topics/listener_qos.py index 64ec5de5c..5c9ce74d9 100644 --- a/demo_nodes_py/demo_nodes_py/topics/listener_qos.py +++ b/demo_nodes_py/demo_nodes_py/topics/listener_qos.py @@ -68,10 +68,8 @@ def main(argv=sys.argv[1:]): while rclpy.ok() and cycle_count < args.number_of_cycles: rclpy.spin_once(node) cycle_count += 1 - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: node.destroy_node() rclpy.try_shutdown() diff --git a/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py b/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py index 0d8919718..8843f4f40 100644 --- a/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py +++ b/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py @@ -43,10 +43,8 @@ def main(args=None): try: rclpy.spin(serialized_subscriber) - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: # Destroy the node explicitly # (optional - otherwise it will be done automatically diff --git a/demo_nodes_py/demo_nodes_py/topics/talker.py b/demo_nodes_py/demo_nodes_py/topics/talker.py index fb1e707e8..fa3ac80c4 100644 --- a/demo_nodes_py/demo_nodes_py/topics/talker.py +++ b/demo_nodes_py/demo_nodes_py/topics/talker.py @@ -45,10 +45,8 @@ def main(args=None): try: rclpy.spin(node) - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: node.destroy_node() rclpy.try_shutdown() diff --git a/demo_nodes_py/demo_nodes_py/topics/talker_qos.py b/demo_nodes_py/demo_nodes_py/topics/talker_qos.py index 4fd03c68e..ee2b9a166 100644 --- a/demo_nodes_py/demo_nodes_py/topics/talker_qos.py +++ b/demo_nodes_py/demo_nodes_py/topics/talker_qos.py @@ -75,10 +75,8 @@ def main(argv=sys.argv[1:]): while rclpy.ok() and cycle_count < args.number_of_cycles: rclpy.spin_once(node) cycle_count += 1 - except KeyboardInterrupt: + except (KeyboardInterrupt, ExternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: node.destroy_node() rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py index 79b2abe2a..2912289f7 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py @@ -72,10 +72,8 @@ def main(args=None): executor.add_node(talker) try: executor.spin() - except KeyboardInterrupt: + except (KeyboardInterrupt, EternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py index e1724a85e..87fb2f873 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py @@ -141,10 +141,8 @@ def main(args=None): try: while talker.publish_count < num_msgs: executor.spin_once() - except KeyboardInterrupt: + except (KeyboardInterrupt, EternalShutdownException): pass - except ExternalShutdownException: - return 1 finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py index 82dd23bae..1e2b2eb23 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py @@ -69,10 +69,8 @@ def main(): try: executor.spin() - except KeyboardInterrupt: + except (KeyboardInterrupt, EternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py index 24106aa85..87b930a52 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py @@ -53,10 +53,8 @@ def main(args=None): node = Listener() try: rclpy.spin(node) - except KeyboardInterrupt: + except (KeyboardInterrupt, EternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: rclpy.try_shutdown() node.destroy_node() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py index 7872a17ab..b64dac266 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py @@ -61,10 +61,8 @@ def main(args=None): try: rclpy.spin(node) - except KeyboardInterrupt: + except (KeyboardInterrupt, EternalShutdownException): pass - except ExternalShutdownException: - sys.exit(1) finally: rclpy.try_shutdown() node.destroy_node() From ad32398cab6ca09c59916941836537078c1d860c Mon Sep 17 00:00:00 2001 From: Jacob Perron Date: Thu, 4 Aug 2022 10:42:26 -0700 Subject: [PATCH 2/4] Remove unused import Signed-off-by: Jacob Perron --- demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py | 2 -- demo_nodes_py/demo_nodes_py/topics/listener.py | 2 -- demo_nodes_py/demo_nodes_py/topics/listener_serialized.py | 2 -- demo_nodes_py/demo_nodes_py/topics/talker.py | 2 -- 4 files changed, 8 deletions(-) diff --git a/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py b/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py index 81d8c9d00..806e41bc5 100644 --- a/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py +++ b/demo_nodes_py/demo_nodes_py/services/add_two_ints_server.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - from example_interfaces.srv import AddTwoInts import rclpy diff --git a/demo_nodes_py/demo_nodes_py/topics/listener.py b/demo_nodes_py/demo_nodes_py/topics/listener.py index feba805c9..e52354a2b 100644 --- a/demo_nodes_py/demo_nodes_py/topics/listener.py +++ b/demo_nodes_py/demo_nodes_py/topics/listener.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.node import Node diff --git a/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py b/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py index 8843f4f40..d768cf23e 100644 --- a/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py +++ b/demo_nodes_py/demo_nodes_py/topics/listener_serialized.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.node import Node diff --git a/demo_nodes_py/demo_nodes_py/topics/talker.py b/demo_nodes_py/demo_nodes_py/topics/talker.py index fa3ac80c4..119c342a0 100644 --- a/demo_nodes_py/demo_nodes_py/topics/talker.py +++ b/demo_nodes_py/demo_nodes_py/topics/talker.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.node import Node From 6619bd5f454a372874b455d74e45f5bdf321896b Mon Sep 17 00:00:00 2001 From: Jacob Perron Date: Thu, 4 Aug 2022 15:47:00 -0700 Subject: [PATCH 3/4] Remove unused import Signed-off-by: Jacob Perron --- .../rclpy/quality_of_service_demo_py/deadline.py | 1 - .../rclpy/quality_of_service_demo_py/message_lost_listener.py | 2 -- .../rclpy/quality_of_service_demo_py/qos_overrides_listener.py | 2 -- .../rclpy/quality_of_service_demo_py/qos_overrides_talker.py | 2 -- 4 files changed, 7 deletions(-) diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py index 2912289f7..d34cdb4aa 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. import argparse -import sys from quality_of_service_demo_py.common_nodes import Listener from quality_of_service_demo_py.common_nodes import Talker diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py index 1e2b2eb23..352c473c0 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.executors import SingleThreadedExecutor diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py index 87b930a52..357dad5d8 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.node import Node diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py index b64dac266..89e550740 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import rclpy from rclpy.executors import ExternalShutdownException from rclpy.node import Node From 06a5994adda9d3b69d6ed8716b3dc098abe42ca0 Mon Sep 17 00:00:00 2001 From: Jacob Perron Date: Mon, 8 Aug 2022 10:47:23 -0700 Subject: [PATCH 4/4] fix typo Signed-off-by: Jacob Perron --- .../rclpy/quality_of_service_demo_py/deadline.py | 2 +- .../rclpy/quality_of_service_demo_py/incompatible_qos.py | 2 +- .../rclpy/quality_of_service_demo_py/message_lost_listener.py | 2 +- .../rclpy/quality_of_service_demo_py/qos_overrides_listener.py | 2 +- .../rclpy/quality_of_service_demo_py/qos_overrides_talker.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py index d34cdb4aa..5c6de8450 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/deadline.py @@ -71,7 +71,7 @@ def main(args=None): executor.add_node(talker) try: executor.spin() - except (KeyboardInterrupt, EternalShutdownException): + except (KeyboardInterrupt, ExternalShutdownException): pass finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py index 87fb2f873..0610a60b4 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/incompatible_qos.py @@ -141,7 +141,7 @@ def main(args=None): try: while talker.publish_count < num_msgs: executor.spin_once() - except (KeyboardInterrupt, EternalShutdownException): + except (KeyboardInterrupt, ExternalShutdownException): pass finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py index 352c473c0..5ca9ec123 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/message_lost_listener.py @@ -67,7 +67,7 @@ def main(): try: executor.spin() - except (KeyboardInterrupt, EternalShutdownException): + except (KeyboardInterrupt, ExternalShutdownException): pass finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py index 357dad5d8..c0e63b6fe 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_listener.py @@ -51,7 +51,7 @@ def main(args=None): node = Listener() try: rclpy.spin(node) - except (KeyboardInterrupt, EternalShutdownException): + except (KeyboardInterrupt, ExternalShutdownException): pass finally: rclpy.try_shutdown() diff --git a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py index 89e550740..1d0e164ab 100644 --- a/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py +++ b/quality_of_service_demo/rclpy/quality_of_service_demo_py/qos_overrides_talker.py @@ -59,7 +59,7 @@ def main(args=None): try: rclpy.spin(node) - except (KeyboardInterrupt, EternalShutdownException): + except (KeyboardInterrupt, ExternalShutdownException): pass finally: rclpy.try_shutdown()