Looking into the rclcpp::shutdown(), I believe there is an issue where it should be calling rcl_shutdown() which in turn runs __clean_up_init().
If you call the weird scenario of:
rclcpp::init(argc, argv);
rclcpp::shutdown();
rclcpp::init(argc, argv);
Exceptions get thrown indicating that it is already initialized. This is not a normal use case by any means and in fact rather aweful. Unfortunately, my testing framework requires me to have to run init between test executions, which causes problems.
I did see the rclcpp::init calls rcl_init, so I assumed it was just missed in the shutdown.
Am I looking at this correctly?
Thanks.