[Rock-dev] Regarding dynamic properties

Sylvain Joyeux sylvain.joyeux at dfki.de
Thu Jan 9 09:52:15 CET 2014


Comments:

The separation between the internal method called in caller thread and the 
user method in callee thread looks overkill.

More rational reasons as to why it is bad:
 - it has a race condition. Since the operation and the task are in two 
   different threads, isConfigured() might be e.g. true when you test it and 
   false one line of code later.
 - when the component is not running, there can be no lock contention that 
   blocks the caller for a long period of time (the component is doing 
   nothing). Even if it was the case, one can call operations asynchronously.
 - when the component is running, the lock contention can still be present in 
   your version as you call the user operation
 - what you did is extremely expensive compilation-time wise as you have to 
   have two operations and do a C++ operation call.
 - it is ugly on the component interface side as it makes the internal 
   operation visible (instead of having a single setXXX operation)

Quick code review:
 - you introduce a change of behaviour in argument_signature: you add either a 
   leading or trailing space in the returned string if one of the with_ 
   parameters are false.
 - please use __orogen_ as prefix for the internal method (instead of the 
   _internal suffix), it would match the 'hidden' __orogen_getTID operation that 
   is already added by orogen.

Finally, I did not get the change of interface for the user method(s), and why 
it was necessary
-- 
 Dr. Ing. Sylvain Joyeux
 Space and Security Robotics
 
 Besuchsadresse der Nebengeschäftstelle:
 DFKI GmbH
 Robotics Innovation Center
 Robert-Hooke-Straße 5
 28359 Bremen, Germany
 
 Postadresse der Hauptgeschäftsstelle Standort Bremen:
 DFKI GmbH
 Robotics Innovation Center
 Robert-Hooke-Straße 1
 28359 Bremen, Germany 

 Phone:     +49 421 178 45-4136
 Zentrale: +49 421 178 45-0
 Fax:           +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
 E-Mail:     sylvain.joyeux at dfki.de
 
 Weitere Informationen: http://www.dfki.de/robotik
 -----------------------------------------------------------------------
 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
 Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
 Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster 
 (Vorsitzender) Dr. Walter Olthoff
 Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
 Amtsgericht Kaiserslautern, HRB 2313
 Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
 USt-Id.Nr.:    DE 148646973
 Steuernummer:  19/673/0060/3 
 ---------------------------------------------------------------------


More information about the Rock-dev mailing list