From 85823dbaa284269622528dd9bc4ef55c62fab24f Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Wed, 21 Jul 2021 10:06:38 +0200
Subject: [PATCH] Remove explicitly adding prov segment (lead to deadlock + is
 not necessary)

---
 .../server/proprioception/Segment.cpp         | 21 ++-----------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
index 043774b77..f43d8709e 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
@@ -63,6 +63,7 @@ namespace armarx::armem::server::robot_state::proprioception
         const std::string providerSegmentName = kinematicUnit->getRobotName();
         this->robotUnitProviderID = coreSegment->id().withProviderSegmentName(providerSegmentName);
 
+#if 0
         // TODO what is the purpose?
         auto encoderEntryType = std::make_shared<aron::typenavigator::ObjectNavigator>("RobotUnitEncoderEntry");
         auto encoderNameType = std::make_shared<aron::typenavigator::StringNavigator>();
@@ -71,25 +72,7 @@ namespace armarx::armem::server::robot_state::proprioception
         encoderEntryType->addMemberType("IterationId", encoderIterationIDType);
         //auto encoderValueType = std::make_shared<aron::typenavigator::AnyType>();
         //encoderEntryType->addMemberType("value", encoderValueType);
-
-        ARMARX_INFO << "Adding provider segment " << p.coreSegment << "/" << providerSegmentName;
-        armem::data::AddSegmentInput input;
-        input.coreSegmentName = p.coreSegment;
-        input.providerSegmentName = providerSegmentName;
-
-        {
-            std::lock_guard g{mutex()};
-            auto result = iceMemory.addSegments({input})[0];
-
-            if (!result.success)
-            {
-                ARMARX_ERROR << "Could not add segment " << p.coreSegment << "/" << providerSegmentName << ". The error message is: " << result.errorMessage;
-            }
-        }
-
-        robotUnitProviderID.memoryName = iceMemory.workingMemory->id().memoryName;
-        robotUnitProviderID.coreSegmentName = p.coreSegment;
-        robotUnitProviderID.providerSegmentName = providerSegmentName;
+#endif
     }
 
 
-- 
GitLab