diff --git a/rclcpp/include/rclcpp/rclcpp.hpp b/rclcpp/include/rclcpp/rclcpp.hpp index 94fbeae..863438c 100644 --- a/rclcpp/include/rclcpp/rclcpp.hpp +++ b/rclcpp/include/rclcpp/rclcpp.hpp @@ -60,6 +60,7 @@ using rclcpp::timer::TimerBase; using rclcpp::timer::WallTimer; typedef rclcpp::context::Context::SharedPtr ContextSharedPtr; using rclcpp::utilities::ok; +using rclcpp::utilities::shutdown; using rclcpp::utilities::init; using rclcpp::utilities::sleep_for; diff --git a/rclcpp/include/rclcpp/utilities.hpp b/rclcpp/include/rclcpp/utilities.hpp index b2afd8c..f20be3f 100644 --- a/rclcpp/include/rclcpp/utilities.hpp +++ b/rclcpp/include/rclcpp/utilities.hpp @@ -127,6 +127,15 @@ ok() return ::g_signal_status == 0; } +void +shutdown() +{ + g_signal_status = SIGINT; + rmw_trigger_guard_condition(g_sigint_guard_cond_handle); + g_interrupt_condition_variable.notify_all(); +} + + rmw_guard_condition_t * get_global_sigint_guard_condition() {