[openrtm-commit:01849] r694 - trunk/OpenRTM-aist-Python/OpenRTM_aist

openrtm @ openrtm.org openrtm @ openrtm.org
2016年 3月 12日 (土) 04:59:58 JST


Author: miyamoto
Date: 2016-03-12 04:59:58 +0900 (Sat, 12 Mar 2016)
New Revision: 694

Modified:
   trunk/OpenRTM-aist-Python/OpenRTM_aist/ManagerServant.py
   trunk/OpenRTM-aist-Python/OpenRTM_aist/NamingManager.py
Log:
[compat,bugfix,->RELENG_1_2] bug fix. refs #3411

Modified: trunk/OpenRTM-aist-Python/OpenRTM_aist/ManagerServant.py
===================================================================
--- trunk/OpenRTM-aist-Python/OpenRTM_aist/ManagerServant.py	2016-03-11 19:16:43 UTC (rev 693)
+++ trunk/OpenRTM-aist-Python/OpenRTM_aist/ManagerServant.py	2016-03-11 19:59:58 UTC (rev 694)
@@ -971,7 +971,7 @@
       return self.getObjRef()
     if self._isMaster:
       guard = OpenRTM_aist.ScopedLock(self._slaveMutex)
-      for slave in self._slaves:
+      for slave in self._slaves[:]:
         try:
           prof = slave.get_configuration()
           prop = OpenRTM_aist.Properties()
@@ -983,11 +983,13 @@
         except:
           self._rtcout.RTC_ERROR("Unknown exception cought.")
           self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception())
+          self.remove_slave_manager(slave)
       del guard
     else:
       guard = OpenRTM_aist.ScopedLock(self._masterMutex)
       for master in self._masters:
-        for slave in master.get_slave_managers():
+        slaves = master.get_slave_managers()
+        for slave in slaves[:]:
           try:
             prof = slave.get_configuration()
             prop = OpenRTM_aist.Properties()
@@ -998,6 +1000,7 @@
           except:
             self._rtcout.RTC_ERROR("Unknown exception cought.")
             self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception())
+            master.remove_slave_manager(slave)
         try:
           prof = master.get_configuration()
           prop = OpenRTM_aist.Properties()

Modified: trunk/OpenRTM-aist-Python/OpenRTM_aist/NamingManager.py
===================================================================
--- trunk/OpenRTM-aist-Python/OpenRTM_aist/NamingManager.py	2016-03-11 19:16:43 UTC (rev 693)
+++ trunk/OpenRTM-aist-Python/OpenRTM_aist/NamingManager.py	2016-03-11 19:59:58 UTC (rev 694)
@@ -507,8 +507,12 @@
             rtc_list = mgr.get_components_by_name(rtc_name)
 
             slaves = mgr.get_slave_managers()
-            for ms in slaves:
-              rtc_list.extend(ms.get_components_by_name(rtc_name))
+            for slave in slaves:
+              try:
+                rtc_list.extend(slave.get_components_by_name(rtc_name))
+              except:
+                self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception())
+                mgr.remove_slave_manager(slave)
 
           return rtc_list
     return rtc_list



More information about the openrtm-commit mailing list