[openrtm-users 00664] 実行コンテキストの削除について

2 posts / 0 new
Last post
root
Offline
Last seen: 1 day 12 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00664] 実行コンテキストの削除について

静岡大 清水様 & OpenRTMユーザの皆様
お世話になっております。
株式会社山武 樋口と申します。

以前下記の内容で情報頂きました。
大変恐縮ですが、「ECのインスタンスを作成したマシン上で強引に消去する」方法について
具体的な手順をお教えいただけないでしょうか。

また、上記を行った場合、OpenRTM0.4.2ではバグのためにセグメントエラーになるとのことですが、
どのようなバグがあるのでしょうか?
もしお分かりになりましたら、合わせてご教示いただけると幸いです。

以上、よろしくお願いいたします。

Undefined
root
Offline
Last seen: 1 day 12 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00665] 実行コンテキストの削除について

株式会社山武 樋口様

> 以前下記の内容で情報頂きました。
> 大変恐縮ですが、「ECのインスタンスを作成したマシン上で
強引に消去する」方法について
> 具体的な手順をお教えいただけないでしょうか

PortableServerクラスに
referece_to_servant()
というメソッドがあります。

これに消したいECのCORBAリファレンスを
渡すと、ECのServantBaseクラス
ポインタが得られます。
それをdeleteすればECはdestructされます。

> また、上記を行った場合、OpenRTM0.4.2ではバグのためにセ
グメントエラーになるとのことですが、
> どのようなバグがあるのでしょうか?
> もしお分かりになりましたら、合わせてご教示いただけると
幸いです。

これに関しては、記憶が定かではないのですが、
ECが管理している何かのCORBAリファレンスの
RefCountの整合性の問題だったように思います。
もしかしたら記憶違いかもしれません。
記憶があいまいですいません。
(RTCにはこの問題が確実にあります)

バグではないのですが、もう一つ別の問題があります。
生成されたECはManagerが管理しているのですが、
Managerをshutdownするとき、自分が管理している
ECのservantポインタにアクセスします。

ユーザが上記の方法でECの実体を先にdelete
してしまうと,無効なポインタにアクセスする
ことになるので、Segment Errorとなります。

このエラーはManagerをshutdownするときに
しか起きないので、無視してもよいと思うのですが、
RTCやManagerがきれいにshutdownされない
可能性があるので、私としてはおすすめはしません。

清水

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK