diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-01-25 15:41:44 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-02-13 12:39:24 +0200 |
commit | 88f0780e34116c0441a8d8c58b8a8fd9fde4b1f5 (patch) | |
tree | 1240b36211772479dc1220712e0daed4e35ecd85 /build2/operation | |
parent | 61aa8e2b4bd7849838c04dc1f421c4760d88319f (diff) |
Add model mutex, make var_pool const by default
Diffstat (limited to 'build2/operation')
-rw-r--r-- | build2/operation | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/build2/operation b/build2/operation index 0daf413..d52c748 100644 --- a/build2/operation +++ b/build2/operation @@ -198,20 +198,25 @@ namespace build2 // Meta-operation-specific logic to load the buildfile, search and match // the targets, and execute the action on the targets. // - void (*load) (const path& buildfile, + // Note that the model lock is passed locked and is expected to also be + // locked on return (but it can be released and re-acquired inside). + // + void (*load) (ulock&, scope& root, + const path& buildfile, const dir_path& out_base, const dir_path& src_base, const location&); - void (*search) (scope& root, + void (*search) (ulock&, + scope& root, const target_key&, const location&, action_targets&); - void (*match) (action, action_targets&); + void (*match) (ulock&, action, action_targets&); - void (*execute) (action, const action_targets&, bool quiet); + void (*execute) (ulock&, action, const action_targets&, bool quiet); void (*operation_post) (operation_id); // End of operation batch. void (*meta_operation_post) (); // End of meta-operation batch. @@ -229,8 +234,9 @@ namespace build2 // scope. // void - load (const path& buildfile, + load (ulock&, scope& root, + const path& buildfile, const dir_path& out_base, const dir_path& src_base, const location&); @@ -239,17 +245,17 @@ namespace build2 // that does just that and adds a pointer to the target to the list. // void - search (scope&, const target_key&, const location&, action_targets&); + search (ulock&, scope&, const target_key&, const location&, action_targets&); void - match (action, action_targets&); + match (ulock&, action, action_targets&); // Execute the action on the list of targets. This is the default // implementation that does just that while issuing appropriate // diagnostics (unless quiet). // void - execute (action, const action_targets&, bool quiet); + execute (ulock&, action, const action_targets&, bool quiet); extern const meta_operation_info noop; extern const meta_operation_info perform; |