aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/algorithm.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-03-09 11:12:12 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-03-09 11:12:12 +0200
commit2e6c3bf33ab1cd75b9936e65568a39571f279fc3 (patch)
tree2c5a0b7554ffbfb47060f20fb1d3c412ac7edb1f /libbuild2/algorithm.hxx
parent2ede341d59b4ab259caf808dfa65c0ac380ba347 (diff)
Parallel implementation of update_during_match_prerequisites()
Diffstat (limited to 'libbuild2/algorithm.hxx')
-rw-r--r--libbuild2/algorithm.hxx16
1 files changed, 9 insertions, 7 deletions
diff --git a/libbuild2/algorithm.hxx b/libbuild2/algorithm.hxx
index 788138b..f6c296e 100644
--- a/libbuild2/algorithm.hxx
+++ b/libbuild2/algorithm.hxx
@@ -589,12 +589,17 @@ namespace build2
// relationship (so no dependents count is decremented) and execution order
// (so this function never returns the postponed target state).
//
- // Note: waits for the completion if the target is busy and translates
- // target_state::failed to the failed exception.
+ // Note: the first version waits for the completion if the target is busy
+ // and translates target_state::failed to the failed exception.
//
- LIBBUILD2_SYMEXPORT target_state
+ target_state
execute_direct (action, const target&);
+ target_state
+ execute_direct_async (action, const target&,
+ size_t start_count, atomic_count& task_count,
+ bool fail = true);
+
// Update the target during the match phase (by switching the phase and
// calling execute_direct()). Return true if the target has changed or, if
// the passed timestamp is not timestamp_unknown, it is older than the
@@ -617,10 +622,7 @@ namespace build2
// for temporary storage). But it resets data to 0 once done.
//
LIBBUILD2_SYMEXPORT bool
- update_during_match (tracer&,
- action,
- prerequisite_targets&,
- uintptr_t mask);
+ update_during_match_prerequisites (tracer&, action, target&, 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