diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-02-15 03:55:15 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-03-02 14:03:34 +0200 |
commit | b37f1aa6398065be806e6605a023189685669885 (patch) | |
tree | b9b32091e3d70a31852302b24c99ecb62465464a /build2/parser.cxx | |
parent | a64b2ae2099346471ead988d5f2d383d55a9bf89 (diff) |
Implement parallel match
Diffstat (limited to 'build2/parser.cxx')
-rw-r--r-- | build2/parser.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/build2/parser.cxx b/build2/parser.cxx index 154c123..a5ed0d5 100644 --- a/build2/parser.cxx +++ b/build2/parser.cxx @@ -660,7 +660,8 @@ namespace build2 if (default_target_ == nullptr) default_target_ = target_; - target_->prerequisites.reserve (pns.size ()); + target_->prerequisites_state_.store (2, memory_order_relaxed); + target_->prerequisites_.reserve (pns.size ()); tgs.push_back (*target_); } @@ -703,7 +704,10 @@ namespace build2 // one). // target& t (*i); - t.prerequisites.push_back (++i == e ? move (p) : p); + t.prerequisites_.push_back ( + ++i == e + ? move (p) + : prerequisite (p, memory_order_relaxed)); // Serial } } } @@ -3573,7 +3577,9 @@ namespace build2 false, trace).first); - ct.prerequisites.emplace_back (prerequisite (dt)); + + ct.prerequisites_state_.store (2, memory_order_relaxed); + ct.prerequisites_.emplace_back (prerequisite (dt)); } void parser:: |