aboutsummaryrefslogtreecommitdiff
path: root/build2/operation
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-02-10 08:15:48 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-02-13 12:42:42 +0200
commitabccaf9596461215fce0e32322133fb6c39be44f (patch)
tree3fc16a6e6142d65e6b47ae686ab845cc164478cc /build2/operation
parentbcb2a89e111a918a48a132a2a29e0c26d724591d (diff)
Implement parallel error propagation, keep_going mode
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features.
Diffstat (limited to 'build2/operation')
-rw-r--r--build2/operation7
1 files changed, 7 insertions, 0 deletions
diff --git a/build2/operation b/build2/operation
index 700ee7e..544a9f9 100644
--- a/build2/operation
+++ b/build2/operation
@@ -185,6 +185,7 @@ namespace build2
//
const string name_do; // E.g., [to] 'configure'.
const string name_doing; // E.g., [while] 'configuring'.
+ const string name_did; // E.g., 'configured'.
const string name_done; // E.g., 'is configured'.
// If operation_pre() is not NULL, then it may translate default_id
@@ -269,10 +270,16 @@ namespace build2
//
const string name_do; // E.g., [to] 'update'.
const string name_doing; // E.g., [while] 'updating'.
+ const string name_did; // E.g., [not] 'updated'.
const string name_done; // E.g., 'is up to date'.
const execution_mode mode;
+ // This is the operation's concurrency multiplier. 0 means run serially,
+ // 1 means run at hardware concurrency (unless overridden by the user).
+ //
+ const size_t concurrency;
+
// If the returned operation_id's are not 0, then they are injected
// as pre/post operations for this operation. Can be NULL if unused.
// The returned operation_id shall not be default_id.