diff --git a/common/place/placer_heap.cc b/common/place/placer_heap.cc index fa71c796..2ed2cdeb 100644 --- a/common/place/placer_heap.cc +++ b/common/place/placer_heap.cc @@ -177,7 +177,7 @@ class HeAPPlacer { auto startt = std::chrono::high_resolution_clock::now(); - std::lock_guard lock{*ctx}; + std::unique_lock lock{*ctx}; place_constraints(); build_fast_bels(); alloc_control_sets(); @@ -396,7 +396,7 @@ class HeAPPlacer } ctx->check(); - lock.unlock_early(); + lock.unlock(); #if !defined(NPNR_DISABLE_THREADS) if (cfg.parallelRefine) { diff --git a/common/route/router2.cc b/common/route/router2.cc index e3e553c0..5a737b13 100644 --- a/common/route/router2.cc +++ b/common/route/router2.cc @@ -1680,7 +1680,7 @@ struct Router2 ThreadContext st; int iter = 1; - std::lock_guard lock{*ctx}; + std::unique_lock lock{*ctx}; for (size_t i = 0; i < nets_by_udata.size(); i++) route_queue.push_back(i); @@ -1797,7 +1797,7 @@ struct Router2 log_info("Running router1 to check that route is legal...\n"); - lock.unlock_early(); + lock.unlock(); router1(ctx, Router1Cfg(ctx)); }