Skip to content
Snippets Groups Projects
Commit 00e6e554 authored by Fabian Tërnava's avatar Fabian Tërnava
Browse files

remove mutex from simple memory writer (makes it copyable)

parent f48baad8
No related branches found
No related tags found
No related merge requests found
...@@ -44,12 +44,6 @@ namespace armarx::armem::client::util ...@@ -44,12 +44,6 @@ namespace armarx::armem::client::util
} }
} }
std::mutex&
SimpleWriterBase::memoryWriterMutex()
{
return memoryMutex;
}
armem::client::Writer& armem::client::Writer&
SimpleWriterBase::memoryWriter() SimpleWriterBase::memoryWriter()
{ {
......
...@@ -58,7 +58,6 @@ namespace armarx::armem::client::util ...@@ -58,7 +58,6 @@ namespace armarx::armem::client::util
virtual std::string propertyPrefix() const = 0; virtual std::string propertyPrefix() const = 0;
virtual Properties defaultProperties() const = 0; virtual Properties defaultProperties() const = 0;
std::mutex& memoryWriterMutex();
armem::client::Writer& memoryWriter(); armem::client::Writer& memoryWriter();
...@@ -66,7 +65,6 @@ namespace armarx::armem::client::util ...@@ -66,7 +65,6 @@ namespace armarx::armem::client::util
Properties props; Properties props;
armem::client::Writer memoryWriterClient; armem::client::Writer memoryWriterClient;
std::mutex memoryMutex;
}; };
} // namespace armarx::armem::client::util } // namespace armarx::armem::client::util
#include "Writer.h" #include "Writer.h"
#include <RobotAPI/libraries/armem_vision/aron_conversions.h>
#include <RobotAPI/libraries/armem_vision/aron/OccupancyGrid.aron.generated.h> #include <RobotAPI/libraries/armem_vision/aron/OccupancyGrid.aron.generated.h>
#include <RobotAPI/libraries/armem_vision/aron_conversions.h>
namespace armarx::armem::vision::occupancy_grid::client namespace armarx::armem::vision::occupancy_grid::client
{ {
Writer::~Writer() = default; Writer::~Writer() = default;
bool Writer::store(const OccupancyGrid& grid, bool
const std::string& frame, Writer::store(const OccupancyGrid& grid,
const std::string& providerName, const std::string& frame,
const std::int64_t& timestamp) const std::string& providerName,
const std::int64_t& timestamp)
{ {
std::lock_guard g{memoryWriterMutex()}; static std::mutex mutex;
std::lock_guard g{mutex};
const auto result = memoryWriter().addSegment(properties().coreSegmentName, providerName); const auto result = memoryWriter().addSegment(properties().coreSegmentName, providerName);
...@@ -28,7 +30,7 @@ namespace armarx::armem::vision::occupancy_grid::client ...@@ -28,7 +30,7 @@ namespace armarx::armem::vision::occupancy_grid::client
const auto iceTimestamp = Time(Duration::MicroSeconds(timestamp)); const auto iceTimestamp = Time(Duration::MicroSeconds(timestamp));
const auto providerId = armem::MemoryID(result.segmentID); const auto providerId = armem::MemoryID(result.segmentID);
const auto entityID = providerId.withEntityName(frame).withTimestamp(iceTimestamp); const auto entityID = providerId.withEntityName(frame).withTimestamp(iceTimestamp);
armem::EntityUpdate update; armem::EntityUpdate update;
update.entityID = entityID; update.entityID = entityID;
...@@ -41,7 +43,7 @@ namespace armarx::armem::vision::occupancy_grid::client ...@@ -41,7 +43,7 @@ namespace armarx::armem::vision::occupancy_grid::client
dict->addElement("grid", toAron(grid.grid)); dict->addElement("grid", toAron(grid.grid));
update.instancesData = {dict}; update.instancesData = {dict};
update.referencedTime = iceTimestamp; update.referencedTime = iceTimestamp;
ARMARX_DEBUG << "Committing " << update << " at time " << iceTimestamp; ARMARX_DEBUG << "Committing " << update << " at time " << iceTimestamp;
armem::EntityUpdateResult updateResult = memoryWriter().commit(update); armem::EntityUpdateResult updateResult = memoryWriter().commit(update);
...@@ -56,7 +58,8 @@ namespace armarx::armem::vision::occupancy_grid::client ...@@ -56,7 +58,8 @@ namespace armarx::armem::vision::occupancy_grid::client
return updateResult.success; return updateResult.success;
} }
std::string Writer::propertyPrefix() const std::string
Writer::propertyPrefix() const
{ {
return "mem.vision.occupancy_grid."; return "mem.vision.occupancy_grid.";
} }
...@@ -65,7 +68,7 @@ namespace armarx::armem::vision::occupancy_grid::client ...@@ -65,7 +68,7 @@ namespace armarx::armem::vision::occupancy_grid::client
Writer::defaultProperties() const Writer::defaultProperties() const
{ {
return SimpleWriterBase::Properties{.memoryName = "Vision", return SimpleWriterBase::Properties{.memoryName = "Vision",
.coreSegmentName = "OccupancyGrid"}; .coreSegmentName = "OccupancyGrid"};
} }
} // namespace armarx::armem::vision::occupancy_grid::client } // namespace armarx::armem::vision::occupancy_grid::client
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment