diff options
Diffstat (limited to 'libbuild2/cc')
-rw-r--r-- | libbuild2/cc/compile-rule.cxx | 40 |
1 files changed, 2 insertions, 38 deletions
diff --git a/libbuild2/cc/compile-rule.cxx b/libbuild2/cc/compile-rule.cxx index c6ecf5e..053cca6 100644 --- a/libbuild2/cc/compile-rule.cxx +++ b/libbuild2/cc/compile-rule.cxx @@ -972,8 +972,6 @@ namespace build2 // wait_guard wg (ctx, ctx.count_busy (), t[a].task_count, true); - target_state src_ts1 (target_state::unknown), src_ts2 (src_ts1); - size_t src_i (~0); // Index of src target. size_t start (pts.size ()); // Index of the first to be added. for (prerequisite_member p: group_prerequisite_members (a, t)) @@ -1042,24 +1040,16 @@ namespace build2 continue; } - target_state ts ( - match_async (a, *pt, ctx.count_busy (), t[a].task_count)); + match_async (a, *pt, ctx.count_busy (), t[a].task_count); if (p == md.src) - { src_i = pts.size (); - src_ts1 = ts; - } pts.push_back (prerequisite_target (pt, pi)); } - size_t src_tc1 (t[a].task_count.load (memory_order_consume)); - wg.wait (); - size_t src_tc2 (t[a].task_count.load (memory_order_consume)); - // Finish matching all the targets that we have started. // for (size_t i (start), n (pts.size ()); i != n; ++i) @@ -1083,8 +1073,6 @@ namespace build2 if (mr.first) pt = nullptr; // Ignore in execute. - else if (i == src_i) - src_ts2 = mr.second; } // Inject additional prerequisites. We only do it when performing update @@ -1232,32 +1220,8 @@ namespace build2 // { const path& p (src.path ()); - - // @@ TMP: we seem to have a race condition here but can't quite put - // our finger on it. - // - // NOTE: remember to get rid of src_ts*, etc., once done. - // -#if 0 assert (!p.empty ()); // Sanity check. -#else - if (p.empty ()) - { - target_state src_ts3 (src.matched_state (a, false)); - - info << "unassigned path for target " << src << - info << "is empty_path: " << (&p == &empty_path) << - info << "target state 1: " << src_ts1 << - info << "target state 2: " << src_ts2 << - info << "target state 3: " << src_ts3 << - info << "target count 1: " << src_tc1 << - info << "target count 2: " << src_tc2 << - info << "please report at " - << "https://github.com/build2/build2/issues/89"; - - assert (!p.empty ()); - } -#endif + if (dd.expect (p) != nullptr) l4 ([&]{trace << "source file mismatch forcing update of " << t;}); } |