Replace meta-rule full-rescan retry with a dependency-driven work queue#32
Open
bigio wants to merge 2 commits into
Open
Replace meta-rule full-rescan retry with a dependency-driven work queue#32bigio wants to merge 2 commits into
bigio wants to merge 2 commits into
Conversation
do_meta_tests() restarted its entire foreach over meta_check_ready (or meta_pending when finishing) via "goto RULE" every time any meta resolved, re-checking the dependency list of every still-pending meta each time, even ones unaffected by what just resolved. Replace it with an explicit work queue seeded the same way, where resolving a meta pushes only the specific metas listed in its meta_deprules reverse-map (the same map PerMsgStatus::rule_ready() already uses) instead of rescanning everything. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Looks good to me except you should either seed the hash with truthy values: or check for existence: |
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.
do_meta_tests() restarted its entire foreach over meta_check_ready (or meta_pending when finishing) via "goto RULE" every time any meta resolved, re-checking the dependency list of every still-pending meta each time, even ones unaffected by what just resolved. Replace it with an explicit work queue seeded the same way, where resolving a meta pushes only the specific metas listed in its meta_deprules reverse-map (the same map PerMsgStatus::rule_ready() already uses) instead of rescanning everything.