diff --git a/source/RobotAPI/libraries/skills/core/SkillDescription.h b/source/RobotAPI/libraries/skills/core/SkillDescription.h index 4bc8a3cd8fe92f7ebdf13c32b1e812be8596fbbd..784afd9321f4d677109c1f43672f0bdff4846db8 100644 --- a/source/RobotAPI/libraries/skills/core/SkillDescription.h +++ b/source/RobotAPI/libraries/skills/core/SkillDescription.h @@ -30,6 +30,16 @@ namespace armarx static SkillDescription FromIce(const provider::dto::SkillDescription& i, const std::optional<ProviderID>& = std::nullopt); static SkillDescription FromIce(const manager::dto::SkillDescription& i); + + bool + operator==(const SkillDescription& other) const + { + return this->skillId == other.skillId && this->description == other.description && + this->rootProfileDefaults == other.rootProfileDefaults && + this->timeout == other.timeout && + this->parametersType == other.parametersType && + this->resultType == other.resultType; + } }; template <class T> diff --git a/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp b/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp index 0bfd294f417f9bef5200d32f828b9b95e04625f8..35b30d4828b3b67864cfeb7697e089fb21a30464 100644 --- a/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp +++ b/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp @@ -205,6 +205,7 @@ namespace armarx::skills::gui try { ARMARX_INFO << "Aborting skill '" << executionId.skillId.skillName << "'..."; + std::scoped_lock l(mutex_memory); this->memory->abortSkillAsync(executionId.toManagerIce()); } catch (Ice::Exception const& e)