-
Notifications
You must be signed in to change notification settings - Fork 431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[foxy backport] Derive and throw exception in spin_some spin_all for StaticSingleThreadedExecutor (#1220) #1229
Conversation
rclcpp/include/rclcpp/executors/static_single_threaded_executor.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Stephen Brawner <brawner@gmail.com>
@brawner I think you need to also provide the foxy repos file for CI. |
I wasn't sure if this change was ABI compatible so I ran an ABI checker and it looks good 👍 |
Rerunning tests.
Thanks! But I think that may because those implementations are header only. If the implementation eventually gets moved to the source file, do we have anything to worry about? Also, this file wasn't actually being tested anywhere and not linked to. Would the ABI checker recognize it? |
I don't know the answer to either of your questions 😅 Maybe someone from @ros2/team can weigh in? |
From what I can tell from: https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B under section "Adding a reimplemented virtual function" This will break ABI compatibility if anyone calls the derived function explicitly:
But wouldn't if they called the base class implementation:
Since the compiler will not include the vtable lookup in the first version. As these functions do not currently work at all, this might be a potentially necessary breaking ABI change that can helps users understand why it broke. |
Right, as far as I can tell, this will break ABI, because it will change the offsets into the derived object (as you correctly state above). I'm on the fence about whether it is worth it to break ABI for this. On the "yes, let's break ABI" side, Foxy is only a month old, and so the number of users is probably fairly low (and thus the scope of the breakage is low). Further, there probably aren't very many users of I'd lean towards "no, let's not break ABI, and just document the problem", but I could be persuaded otherwise. I'd like to hear more opinions. |
I often refer to this guide from KDE when it comes to ABI. They have some tips to workaround adding a reimplemented virtual function, which could be done for Foxy, then the correct thing can be done for Galactic.
+1 |
I'm also leaning towards not breaking API and documenting the issue. We should add it to the list of known issues for Foxy. |
For reference, this is the open rclcpp issue. #1219 I'll make a PR for submitting it to known issues. |
Closing in favor of #1385 |
This backports just changes to the headers, not the unit test.
Signed-off-by: Stephen Brawner brawner@gmail.com