From 5a029056f736c5bbc693f0a64ed891ea94ae8d54 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Fri, 16 Jul 2021 11:10:21 +0200
Subject: [PATCH] Remove global workingMemoryMutex from server::ComponentPlugin

---
 .../RobotAPI/libraries/armem/server/ComponentPlugin.cpp   | 8 ++++----
 source/RobotAPI/libraries/armem/server/ComponentPlugin.h  | 5 +++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
index aa3962570..ddb1a96a7 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
@@ -130,7 +130,7 @@ namespace armarx::armem::server
 
     data::AddSegmentsResult ComponentPluginUser::addSegments(const data::AddSegmentsInput& input, bool addCoreSegments)
     {
-        std::scoped_lock lock(workingMemoryMutex);
+        // std::scoped_lock lock(workingMemoryMutex);
         data::AddSegmentsResult result = iceMemory.addSegments(input, addCoreSegments);
         return result;
     }
@@ -138,7 +138,7 @@ namespace armarx::armem::server
 
     data::CommitResult ComponentPluginUser::commit(const data::Commit& commitIce, const Ice::Current&)
     {
-        std::scoped_lock lock(workingMemoryMutex);
+        // std::scoped_lock lock(workingMemoryMutex);
         return iceMemory.commit(commitIce);
     }
 
@@ -146,7 +146,7 @@ namespace armarx::armem::server
     // READING
     armem::query::data::Result ComponentPluginUser::query(const armem::query::data::Input& input, const Ice::Current&)
     {
-        std::scoped_lock lock(workingMemoryMutex);
+        // std::scoped_lock lock(workingMemoryMutex);
         return iceMemory.query(input);
     }
 
@@ -154,7 +154,7 @@ namespace armarx::armem::server
     // LTM STORING
     data::StoreResult ComponentPluginUser::store(const data::StoreInput& input, const Ice::Current&)
     {
-        std::scoped_lock lock(workingMemoryMutex, longtermMemoryMutex);
+        std::scoped_lock lock(/*workingMemoryMutex,*/ longtermMemoryMutex);
         return iceMemory.store(input);
     }
 
diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
index c03668ea8..06ba31f7a 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
@@ -10,8 +10,8 @@
 
 #include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
 #include <RobotAPI/libraries/armem/core/longtermmemory/Memory.h>
-
 #include <RobotAPI/libraries/armem/client/MemoryNameSystemComponentPlugin.h>
+
 #include "MemoryToIceAdapter.h"
 
 
@@ -99,7 +99,8 @@ namespace armarx::armem::server
 
         /// The actual memory.
         wm::Memory workingMemory;
-        std::mutex workingMemoryMutex;
+        // [[deprecated ("The global working memory mutex is deprecated. Use the core segment mutexes instead.")]]
+        // std::mutex workingMemoryMutex;
 
         bool longtermMemoryEnabled = true;
         ltm::Memory longtermMemory;
-- 
GitLab