aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/algorithm.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-03-08 10:57:52 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-03-08 10:59:20 +0200
commit2ede341d59b4ab259caf808dfa65c0ac380ba347 (patch)
treea69e7b9f6a943692cc81b22cd98c8df97c1e9e19 /libbuild2/algorithm.hxx
parentc5022fa04b64a9b572cd468837b934eaf5999e1a (diff)
Improve performance of update during match for multiple targets
Diffstat (limited to 'libbuild2/algorithm.hxx')
-rw-r--r--libbuild2/algorithm.hxx13
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