diff --git a/cartographer/mapping/connected_components.cc b/cartographer/mapping/connected_components.cc index 22a8115..c9e8601 100644 --- a/cartographer/mapping/connected_components.cc +++ b/cartographer/mapping/connected_components.cc @@ -92,6 +92,7 @@ std::vector> ConnectedComponents::Components() { } std::vector ConnectedComponents::GetComponent(const int trajectory_id) { + common::MutexLocker locker(&lock_); const int set_id = FindSet(trajectory_id); std::vector trajectory_ids; for (const auto& entry : forest_) { diff --git a/cartographer/mapping_2d/sparse_pose_graph.h b/cartographer/mapping_2d/sparse_pose_graph.h index 4bc12ea..d0ad102 100644 --- a/cartographer/mapping_2d/sparse_pose_graph.h +++ b/cartographer/mapping_2d/sparse_pose_graph.h @@ -247,7 +247,8 @@ class SparsePoseGraph : public mapping::SparsePoseGraph { ~TrimmingHandle() override {} int num_submaps(int trajectory_id) const override; - void MarkSubmapAsTrimmed(const mapping::SubmapId& submap_id) override; + void MarkSubmapAsTrimmed(const mapping::SubmapId& submap_id) + REQUIRES(parent_->mutex_) override; private: SparsePoseGraph* const parent_; diff --git a/cartographer/mapping_3d/sparse_pose_graph.h b/cartographer/mapping_3d/sparse_pose_graph.h index e89fbfa..b8295e2 100644 --- a/cartographer/mapping_3d/sparse_pose_graph.h +++ b/cartographer/mapping_3d/sparse_pose_graph.h @@ -251,7 +251,8 @@ class SparsePoseGraph : public mapping::SparsePoseGraph { ~TrimmingHandle() override {} int num_submaps(int trajectory_id) const override; - void MarkSubmapAsTrimmed(const mapping::SubmapId& submap_id) override; + void MarkSubmapAsTrimmed(const mapping::SubmapId& submap_id) + REQUIRES(parent_->mutex_) override; private: SparsePoseGraph* const parent_;