Skip to content
Snippets Groups Projects
Commit 154edc1e authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Lock core segment mutex in query processing

parent 9fdc2b62
No related branches found
No related tags found
2 merge requests!185Clean up interfaces and unneeded code in memory core classes,!178Draft: Make RobotStateMemory ready
......@@ -31,9 +31,9 @@ namespace armarx::armem::base::query_proc
using EntitySnapshotT = typename EntityT::EntitySnapshotT;
using Base::process;
void process(_CoreSegmentT& result,
const armem::query::data::CoreSegmentQuery& query,
const _CoreSegmentT& coreSegment) const override
virtual void process(_CoreSegmentT& result,
const armem::query::data::CoreSegmentQuery& query,
const _CoreSegmentT& coreSegment) const override
{
if (auto q = dynamic_cast<const armem::query::data::core::All*>(&query))
{
......
......@@ -14,6 +14,14 @@ namespace armarx::armem::wm::query_proc
CoreSegmentQueryProcessor::~CoreSegmentQueryProcessor() = default;
void CoreSegmentQueryProcessor::process(
CoreSegment& result, const armem::query::data::CoreSegmentQuery& query, const CoreSegment& coreSegment) const
{
std::scoped_lock lock(coreSegment.mutex());
CoreSegmentQueryProcessorBase::process(result, query, coreSegment);
}
data::CoreSegment CoreSegmentQueryProcessor::processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const
{
data::CoreSegment data;
......
......@@ -27,6 +27,10 @@ namespace armarx::armem::wm::query_proc
using Base::process;
/// Locks the core segment, then delegates back to `CoreSegmentQueryProcessorBase`.
void process(CoreSegment& result,
const armem::query::data::CoreSegmentQuery& query,
const CoreSegment& coreSegment) const override;
data::CoreSegment processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const;
......
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