[openrtm-users 00799] SdoConfiguration のデストラクタ

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2009年 5月 29日 (金) 01:05:07 JST


OpenRTM-aist開発者の皆様

SdoConfigurationのデストラクタ、
SDOPackage::~Configuration_impl();
の実装がまずいと思います。

このクラスはCORBAサーバント実装なので、
コンストラクタで、
this->_this();
とimplicit activationしています。
したがって、デストラクタでdeactivation
をしなければ安全でないと思います。
このクラスをnewしてそのままdeleteされる
可能性を考えて実装すべきと考えます。

よって、以下のようなデストラクタの実装が
必要ではないでしょうか。
----------
try{
     PortableServer::POA_var poa = this->_default_POA();
     PortableServer::ObjectId* id =
poa->servant_to_id(this);
     poa->deactivate_object(*id);
   }catch(...){
   }
----------

P.S. ところで、このクラスではdefaultPOAを使っていますが
、
ManagerのPOAと一致させなくても大丈夫なのでしょうか?
現在のところは、ManagerのPOAもdefaultPOAなのでよいですが
、
もし将来的にManagerのPOAがdefaultPOAでなくなったときに、
何らかの問題が起きるのでは?と感じます。

静岡大 清水

--------------------
Masayuki Shimizu
Assistant Professor
Dept. of Mechanical Engineering, Shizuoka Univ.
3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
TEL/FAX: +81-53-478-1061
Email: tmsimiz @ ipc.shizuoka.ac.jp



openrtm-users メーリングリストの案内