From 276312cf37a462db2dfa8280db2970a3a79e48b8 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Fri, 16 Jul 2021 12:18:27 +0200
Subject: [PATCH] Update RobotStateWriter

---
 .../armem/server/RobotStateMemory/RobotStateMemory.cpp |  2 +-
 .../armem/server/RobotStateMemory/RobotStateWriter.cpp | 10 ++++------
 .../armem/server/RobotStateMemory/RobotStateWriter.h   |  3 +--
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
index 6d37d9203..dd2a56edb 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
@@ -164,7 +164,7 @@ namespace armarx::armem::server::robot_state
         {
             robotUnit.writer.run(
                 robotUnit.pollFrequency, robotUnit.dataQueue, robotUnit.dataMutex,
-                iceMemory, localizationSegment, workingMemoryMutex
+                iceMemory, localizationSegment
             );
         }, "Robot State Writer");
 
diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.cpp
index 8b49307bd..e4b2df5fc 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.cpp
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.cpp
@@ -65,11 +65,9 @@ namespace armarx::armem::server::robot_state
     }
 
 
-    void RobotStateWriter::run(
-        float pollFrequency,
-        std::queue<RobotUnitData>& dataQueue, std::mutex& dataMutex,
-        MemoryToIceAdapter& memory, localization::Segment& localizationSegment,
-        std::mutex& workingMemoryMutex)
+    void RobotStateWriter::run(float pollFrequency,
+                               std::queue<RobotUnitData>& dataQueue, std::mutex& dataMutex,
+                               MemoryToIceAdapter& memory, localization::Segment& localizationSegment)
     {
         CycleUtil cycle(static_cast<int>(1000.f / pollFrequency));
         while (task and not task->isStopped())
@@ -97,9 +95,9 @@ namespace armarx::armem::server::robot_state
 
                 armem::CommitResult result;
                 {
-                    std::scoped_lock lock(workingMemoryMutex);
                     endLock = std::chrono::high_resolution_clock::now();
 
+                    // Commits locks the core segment.
                     result = memory.commit(update.proprioception);
                     endProprioception = std::chrono::high_resolution_clock::now();
 
diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.h b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.h
index 8111357d2..93ba74d2d 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.h
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateWriter.h
@@ -61,8 +61,7 @@ namespace armarx::armem::server::robot_state
         void run(float pollFrequency,
                  std::queue<RobotUnitData>& dataQueue, std::mutex& dataMutex,
                  MemoryToIceAdapter& memory,
-                 localization::Segment& localizationSegment,
-                 std::mutex& workingMemoryMutex
+                 localization::Segment& localizationSegment
                 );
 
 
-- 
GitLab