aboutsummaryrefslogtreecommitdiff
path: root/build2/context.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-01-30 12:44:15 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-02-13 12:42:41 +0200
commit1f543f6eb368c3b23aa1f9cd2d23f0dba1456dec (patch)
treea3c1b756c2cc27fac0ac392ce8d108e147b23840 /build2/context.cxx
parentb262d2c9c56eed18d043dccefac02b54a6ae2f95 (diff)
Add notion of load phase generation
Diffstat (limited to 'build2/context.cxx')
-rw-r--r--build2/context.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/build2/context.cxx b/build2/context.cxx
index a8fe2df..a326002 100644
--- a/build2/context.cxx
+++ b/build2/context.cxx
@@ -25,7 +25,7 @@ namespace build2
{
run_phase phase = run_phase::load;
- shared_mutex model;
+ shared_mutex model_mutex;
#ifdef __cpp_thread_local
thread_local
@@ -34,6 +34,8 @@ namespace build2
#endif
slock* model_lock;
+ size_t load_generation;
+
const variable* var_src_root;
const variable* var_out_root;
const variable* var_src_base;
@@ -188,7 +190,8 @@ namespace build2
// Add it if not found.
//
if (o->override == nullptr)
- o->override.reset (new variable {n + k, nullptr, nullptr, v});
+ const_cast<variable*> (o)->override.reset (
+ new variable {n + k, nullptr, nullptr, v, 0});
o = o->override.get ();