diff --git a/apps/lidar_odometry_step_1/drag_folder_with_mandeye_data_and_drop_here-precision_forestry.cpp b/apps/lidar_odometry_step_1/drag_folder_with_mandeye_data_and_drop_here-precision_forestry.cpp index 09d830f0..3a127c63 100644 --- a/apps/lidar_odometry_step_1/drag_folder_with_mandeye_data_and_drop_here-precision_forestry.cpp +++ b/apps/lidar_odometry_step_1/drag_folder_with_mandeye_data_and_drop_here-precision_forestry.cpp @@ -363,8 +363,7 @@ void find_best_stretch( // } } } - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd(rgd_params, my_buckets, points_global2, trajectory_stretched[0].translation()); diff --git a/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp b/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp index 61be7ca6..77831d42 100644 --- a/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp +++ b/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp @@ -392,8 +392,7 @@ void find_best_stretch( // } } } - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd(rgd_params, my_buckets, points_global2, trajectory_stretched[0].translation()); @@ -1819,7 +1818,7 @@ void display() if (show_reference_buckets_indoor) { - std::lock_guard lock(params.mutex_buckets_indoor); + std::scoped_lock lock(params.mutex_buckets_indoor); glColor3f(1, 0, 0); glBegin(GL_POINTS); for (const auto& b : params.buckets_indoor) @@ -1829,7 +1828,7 @@ void display() if (show_reference_buckets_outdoor) { - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock2(params.mutex_buckets_outdoor); glColor3f(0, 0, 1); glBegin(GL_POINTS); for (const auto& b : params.buckets_outdoor) @@ -1839,14 +1838,14 @@ void display() if (show_covs_indoor) { - std::lock_guard lock(params.mutex_buckets_indoor); + std::scoped_lock lock(params.mutex_buckets_indoor); for (const auto& b : params.buckets_indoor) draw_ellipse(b.second.cov, b.second.mean, Eigen::Vector3f(1.0f, 0.0f, 0.0f), 3); } if (show_covs_outdoor) { - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock2(params.mutex_buckets_outdoor); for (const auto& b : params.buckets_outdoor) draw_ellipse(b.second.cov, b.second.mean, Eigen::Vector3f(0.0f, 0.0f, 1.0f), 3); } diff --git a/apps/lidar_odometry_step_1/lidar_odometry_utils_optimizers.cpp b/apps/lidar_odometry_step_1/lidar_odometry_utils_optimizers.cpp index 547665d5..d13e97ae 100644 --- a/apps/lidar_odometry_step_1/lidar_odometry_utils_optimizers.cpp +++ b/apps/lidar_odometry_step_1/lidar_odometry_utils_optimizers.cpp @@ -2286,8 +2286,7 @@ bool initialize_lidar_odometry( // params.buckets_outdoor.clear(); if (params.ablation_study_use_hierarchical_rgd) { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd_hierarchy( params.in_out_params_indoor, @@ -2300,8 +2299,7 @@ bool initialize_lidar_odometry( } else { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd(params.in_out_params_indoor, params.buckets_indoor, pp, params.m_g.translation(), &lookup_stats.indoor_lookups); } @@ -2437,8 +2435,7 @@ bool process_worker_step_2( if (params.use_robust_and_accurate_lidar_odometry) { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); auto tr = worker_data.intermediate_trajectory; auto trmm = worker_data.intermediate_trajectory_motion_model; @@ -2591,8 +2588,7 @@ bool process_worker_step_lidar_odometry_core( for (int iter = 0; iter < params.nr_iter; iter++) { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); iter_end = iter; delta = 100000.0; @@ -2689,8 +2685,7 @@ bool process_worker_step_update_rgd_after( if (params.ablation_study_use_hierarchical_rgd) { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd_hierarchy( params.in_out_params_indoor, @@ -2703,8 +2698,7 @@ bool process_worker_step_update_rgd_after( } else { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd( params.in_out_params_indoor, @@ -2727,8 +2721,7 @@ bool process_worker_step_update_rgd_after( } if (params.ablation_study_use_hierarchical_rgd) { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd_hierarchy( params.in_out_params_indoor, @@ -2741,8 +2734,7 @@ bool process_worker_step_update_rgd_after( } else { - std::lock_guard lock(params.mutex_buckets_indoor); - std::lock_guard lock2(params.mutex_buckets_outdoor); + std::scoped_lock lock(params.mutex_buckets_indoor, params.mutex_buckets_outdoor); update_rgd( params.in_out_params_indoor, diff --git a/apps/manual_color/manual_color.cpp b/apps/manual_color/manual_color.cpp index a0eef696..0c24a1c2 100644 --- a/apps/manual_color/manual_color.cpp +++ b/apps/manual_color/manual_color.cpp @@ -1391,7 +1391,7 @@ void mouse(int glut_button, int state, int x, int y) [&](const mandeye::PointRGB& p) { double D = GetDistanceToRay(p.point, SystemData::clickedRay); - std::lock_guard guard(mtx); + std::scoped_lock guard(mtx); if (D < distanceIndexPair.first) { // Assume that SystemData::point is an array-like type implementation, naked pointer arithmetic ahead: diff --git a/apps/quick_start_demo/quick_start_demo.cpp b/apps/quick_start_demo/quick_start_demo.cpp index 805f950c..d3e782b0 100644 --- a/apps/quick_start_demo/quick_start_demo.cpp +++ b/apps/quick_start_demo/quick_start_demo.cpp @@ -282,7 +282,7 @@ void display() }*/ { - std::lock_guard lock(renderPtrLock); + std::scoped_lock lock(renderPtrLock); glLineWidth(2); glColor3f(0.0, 1.0, 0.0); @@ -554,7 +554,7 @@ bool compute_step_2_demo(std::vector &worker_data, LidarOdometryPara std::cout << "optimizing worker_data [" << i + 1 << "] of " << worker_data.size() << " acc_distance: " << acc_distance << " elapsed time: " << elapsed_seconds1.count() << std::endl; { - std::lock_guard lock(renderPtrLock); + std::scoped_lock lock(renderPtrLock); for (int k = 0; k < worker_data[i].intermediate_points.size(); k++) { @@ -1104,7 +1104,7 @@ int main(int argc, char *argv[]) { compute_step_2_demo(worker_data, params, ts_failure); { - std::lock_guard lock(renderPtrLock); + std::scoped_lock lock(renderPtrLock); std::vector global_pointcloud; std::vector intensity;