diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-03-08 10:57:52 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-03-08 10:59:20 +0200 |
commit | 2ede341d59b4ab259caf808dfa65c0ac380ba347 (patch) | |
tree | a69e7b9f6a943692cc81b22cd98c8df97c1e9e19 /libbuild2/algorithm.hxx | |
parent | c5022fa04b64a9b572cd468837b934eaf5999e1a (diff) |
Improve performance of update during match for multiple targets
Diffstat (limited to 'libbuild2/algorithm.hxx')
-rw-r--r-- | libbuild2/algorithm.hxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libbuild2/algorithm.hxx b/libbuild2/algorithm.hxx index c30680a..788138b 100644 --- a/libbuild2/algorithm.hxx +++ b/libbuild2/algorithm.hxx @@ -609,6 +609,19 @@ namespace build2 action, const target&, timestamp = timestamp_unknown); + // As above, but update all the targets in prerequisite_targets that have + // the specified mask in prerequisite_target::include. Return true if any of + // them have changed. + // + // Note that this function spoils prerequisite_target::data (which is used + // for temporary storage). But it resets data to 0 once done. + // + LIBBUILD2_SYMEXPORT bool + update_during_match (tracer&, + action, + prerequisite_targets&, + uintptr_t mask); + // The default prerequisite execute implementation. Call execute_async() on // each non-ignored (non-NULL) prerequisite target in a loop and then wait // for their completion. Return target_state::changed if any of them were |