From b4453830c36599908a34bd1f38b52c96550ff9c0 Mon Sep 17 00:00:00 2001
From: Fabian Peller-Konrad <fabian.peller-konrad@kit.edu>
Date: Mon, 28 Feb 2022 16:21:31 +0100
Subject: [PATCH] skill updates

---
 .../libraries/armem_objects/client/instance/ObjectReader.h   | 5 ++++-
 source/RobotAPI/libraries/skills/provider/Skill.cpp          | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_objects/client/instance/ObjectReader.h b/source/RobotAPI/libraries/armem_objects/client/instance/ObjectReader.h
index 45a342307..825687d5b 100644
--- a/source/RobotAPI/libraries/armem_objects/client/instance/ObjectReader.h
+++ b/source/RobotAPI/libraries/armem_objects/client/instance/ObjectReader.h
@@ -44,11 +44,11 @@ namespace armarx::armem::obj::instance
         void registerPropertyDefinitions(armarx::PropertyDefinitionsPtr& def);
         void connect();
 
-
         std::optional<armem::arondto::ObjectInstance> queryObject(const armem::wm::Memory& memory, const armem::Time&);
         std::optional<armem::arondto::ObjectInstance> queryObjectByEntityID(const std::string& entityName, const armem::Time&);
         std::optional<armem::arondto::ObjectInstance> queryObjectByObjectID(const std::string& objectId, const armem::Time&);
 
+        // return the class name, e.g. Kitchen/greencup in Kitchen/greencup/0
         static std::string GetObjectId(const std::string& s)
         {
             auto split = simox::alg::split(s, "/");
@@ -69,6 +69,7 @@ namespace armarx::armem::obj::instance
             return "";
         }
 
+        // return the class name, e.g. greencup in Kitchen/greencup/0
         static std::string GetObjectClassName(const std::string& s)
         {
             auto split = simox::alg::split(s, "/");
@@ -89,6 +90,7 @@ namespace armarx::armem::obj::instance
             return "";
         }
 
+        // check if s matches ??/??/??
         static bool IsEntityId(const std::string& s)
         {
             auto split = simox::alg::split(s, "/");
@@ -104,6 +106,7 @@ namespace armarx::armem::obj::instance
             return true;
         }
 
+        // check if s matches ??/??
         static bool IsObjectId(const std::string& s)
         {
             auto split = simox::alg::split(s, "/");
diff --git a/source/RobotAPI/libraries/skills/provider/Skill.cpp b/source/RobotAPI/libraries/skills/provider/Skill.cpp
index aaeaabbe3..c74910e43 100644
--- a/source/RobotAPI/libraries/skills/provider/Skill.cpp
+++ b/source/RobotAPI/libraries/skills/provider/Skill.cpp
@@ -67,7 +67,10 @@ namespace armarx
 
             // always called after execute (should not take longer than 100ms)
             running = false;
-            timeoutCheck.join();
+            if (timeoutCheck.joinable())
+            {
+                timeoutCheck.join();
+            }
             exited = IceUtil::Time::now();
         }
 
-- 
GitLab