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
Add how-to page for callback groups #2652
Conversation
This pull request has been mentioned on ROS Discourse. There might be relevant details there: https://discourse.ros.org/t/how-to-use-callback-groups-in-ros2/25255/8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice write-up. Thank you very much! I propose minor changes only.
Note: I first considered extending the “Avoiding deadlocks” section by a discussion of the tradeoff between conservative configurations (one or few callback groups with risk of deadlocks and poor utilization of computing resources) vs. optimistic configurations (multiple callback groups or reentrant callback groups with risk of data races), but there is much less to write about the data race risk and it’s already touched in the previous section. Therefore, let’s keep the last section focused on deadlocks and synchronous calls as it is.
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Thanks for the review and suggestions. I committed the suggested changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this explains really well. lgtm with minor nitpicks.
Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In short, this is fantastic. Thanks so much for doing this.
I pushed one small cleanup commit, since we don't need a redirect for a new page. Other than that, this looks great so I'll approve and once CI comes back clean, I'll go ahead and merge it in.
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5)
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5)
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5)
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5) Co-authored-by: Taneli Korhonen <81684354+tanelikor@users.noreply.github.com>
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5) Co-authored-by: Taneli Korhonen <81684354+tanelikor@users.noreply.github.com>
* callback groups how-to page Co-authored-by: Ralph Lange <ralph-lange@users.noreply.github.com> Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com> Co-authored-by: tanelikor <taneli.korhonen@karelics.fi> Co-authored-by: Chris Lalancette <clalancette@openrobotics.org> (cherry picked from commit e68f2c5) Co-authored-by: Taneli Korhonen <81684354+tanelikor@users.noreply.github.com>
Please feel free to open a new PR; we can iterate there. |
Based on the discussion in ROS Discourse,
converted the post into documentation from and added it as a how-to page.
Also added couple short rclpy-side notes on the Callback Groups section of About Executors page, but only on the callback group section for now.