Remove the need to Box rcl_node_t#5
Merged
geoff-imdex merged 1 commit intogeoff-imdex:mainfrom Nov 4, 2024
Merged
Conversation
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
geoff-imdex
approved these changes
Nov 4, 2024
Owner
geoff-imdex
left a comment
There was a problem hiding this comment.
That's a much nicer fix than using a Box.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I was able to recreate the crash that happens in humble, as discussed here. It does seem that in Humble rcl is doing some questionable things with the
rcl_node_taddress.This PR offers an alternative solution that does not require us to Box the
rcl_node_t. Instead we initialize thercl_node_twhile it is already positioned inside theNodeHandle. Since theNodeHandlehas a fixed memory address throughout its lifetime, thercl_node_twill also have a fixed address.The only downside is we need to add another variable to
NodeHandleto track whether thercl_node_twas successfully initialized, otherwise it might attempt to callrcl_node_finion an invalidrcl_node_tinstance which lead to bad and confusing behavior in the tests. I think overall this is less disruptive than adding a layer of indirection torcl_node_t.