Process monitor refactor - #392
Draft
WilliamRoebuck wants to merge 13 commits into
Draft
Conversation
Introduce Run Target handling in refactoring * Run Target exploration * Small improvements * Restore table format * Make active flag atomic Proposal for component event queue * Proposal for central event queue * Introduce MPSC queue for event queue * Make use of concurrency error domain * Remove atomics/mutexes that now obsolete * Apply review findings * Move doxyen above the line * Remove blocking push behavior * Change queue push API * EventQueue only accepting r-value refs * Fixes after rebase Fixes after rebase Fix transition to Off states during shutdown * Fix transition to Off * Fix transition to off v2 * Fix test flakyness * RunTarget optimization * Fix copyright Fix race condition for self-term proc Integrate recoveryclient with event queue * Integrate recoveryclient with event queue * Fix include header Fix build with new config Fix concurrency build file Fix compiler errors & warnings Fix component event queue Separate transition bookkeeping from DependencyGraph topology * poc * Improve the transition design * Rollout to production code * Improve documentation * Remove graph poc folder * Improvements and more testing * fix compiler errors * Traverse whole graph on deactivate * Remove initial transition special case * Remove special case for Off * Improve documentation * Cleanup * Remove unneeded file * Cleanup documentation * Remove private inheritance * Reduce component states to minimum * Remove redundant checks * Replace component state with flag * Simply tryReportState method
WilliamRoebuck
requested a deployment
to
workflow-approval
July 30, 2026 11:49 — with
GitHub Actions
Waiting
WilliamRoebuck
requested a deployment
to
workflow-approval
July 30, 2026 11:49 — with
GitHub Actions
Waiting
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
NicolasFussberger
requested a deployment
to
workflow-approval
July 30, 2026 11:53 — with
GitHub Actions
Waiting
NicolasFussberger
requested a deployment
to
workflow-approval
July 30, 2026 11:53 — with
GitHub Actions
Waiting
|
The created documentation from the pull request is available at: docu-html |
WilliamRoebuck
requested a deployment
to
workflow-approval
July 30, 2026 12:13 — with
GitHub Actions
Waiting
WilliamRoebuck
requested a deployment
to
workflow-approval
July 30, 2026 12:13 — with
GitHub Actions
Waiting
WilliamRoebuck
requested a deployment
to
workflow-approval
July 31, 2026 12:19 — with
GitHub Actions
Waiting
WilliamRoebuck
requested a deployment
to
workflow-approval
July 31, 2026 12:19 — with
GitHub Actions
Waiting
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.
The description below is not AI generated. It includes some key information needed to begin a review.
Overview
This is the completion of the refactor started in #370. With these changes, the following is achieved:
IComponent. This means that different types of component can now be implemented, such as containers.Graphnow processes events sequentially rather than in parallel. SeeComponentEventQueue.ProcessInfoNodeis no longer responsible for dependency resolution. This responsibility is moved toTransition.ProcessInfoNode&Graphcoupling resolved -ProcessInfoNodeno longer has access toGraph.New components
DependencyGraph- Data structure for storing and traversing component dependenciesTransition- Resolves run target activation logic. Activates and deactivates components as required.Behavioral change
Processes are now managed based on component state, rather than process state. This means that once a component is activated, the underlying process shall not be started again until the component becomes inactive (either due to an error or a run target activation). Previously, a self-terminating process would be restarted on every run target activation that included it.
Minor changes
kLaunchManagercomms type removed. This was legacy and no longer needed.WIP (while this PR is a draft)
Graph&ProcessInfoNodeReview strategy
As this PR is quite large, it may be necessary for reviewers each to tackle subsections of the changes. In terms of line numbers, these sections are roughly equal:
graph.cpp+graph.hpp(+ unit tests)processinfonode.cpp+processinfonode.hpp(+ unit tests)transition.hpp+transition_UT.hppdependency_graph.hpp+dependency_graph_UT.cpp+process_group_manager.cpp+process_group_manager.hpp