Add support for a transaction window for adding subscriptions, clients, etc
@mjcarroll is already working on this.
Since Apr 13, 2023.
- Dominant language
- C++
- Stars
- 805
- Forks
- 564
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 27
Description
Feature request
Feature description
Currently, each time that a subscription, service, client or waitable is added to a node, it signals for the executor to rebuild the collection of entities that it is tracking as well as the underlying waitset.
One workaround is to set up all entities before adding the node or callback group to an executor, but in the case of the LifecycleNode pattern, the node is already added to an executor.
The idea here would be to add a begin_transaction and end_transaction function that would allow the user to temporarily disable notification of the executor, and resume after all entities have been added.
This would reduce a bit of the CPU churn seen when using LifecycleNodes with many subscriptions.
CC: @alsora @mauropasse
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.