From 92844ef377d92078942034e025f0daa5c80bf89f Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 12 May 2022 10:56:52 +0200 Subject: [PATCH] Fix race condition, add todo --- .../armem_objects/server/instance/SegmentAdapter.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp index be53cc7ff..340d94579 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.cpp @@ -439,10 +439,15 @@ namespace armarx::armem::server::obj::instance const Ice::Current&) { objpose::ObjectPosePredictionResultSeq results; - for (const auto& request : requests) + // TODO(@phesch): Only fetch the required data in the lock, perform the predictions + // locally in this function's thread. + segment.doLocked([this,&requests,&results]() { - results.push_back(segment.predictObjectPose(request)); - } + for (const auto& request : requests) + { + results.push_back(segment.predictObjectPose(request)); + } + }); return results; } -- GitLab