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

2 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 1日 7時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00664] 実行コンテキストの削除について

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

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

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

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

未定義
root
オフライン
Last seen: 1日 7時間 前
登録日: 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

ダウンロード

最新バージョン : 2.1.0-RELESE

統計

Webサイト統計
ユーザ数:3399
プロジェクト統計
RTコンポーネント309
RTミドルウエア35
ツール25
文書・仕様書2

OpenRTM@Github

OpenRTM-aist GitHubサイト

ROS

Robot Operating System

Choreonoid

モーションエディタ/シミュレータ

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

産総研が提供するRTC集

東京オープンソースロボティクス協会