[openrtm-users 00051] Re: RTシステムの終了について

Akio Uda uda-axa @ necst.nec.co.jp
2005年 12月 14日 (水) 10:39:32 JST


To: 産総研 安藤様

いつも御世話になります。宇田@NECシステムテクノロジーです

ご回答ありがとうございます。

> 宇田様
> 
> 安藤@産総研です
> 
> > いつも御世話になります。宇田@NECシステムテクノロジーです
> > 
> > RTシステムの終了方法についてご教授ください。
> > 
> > 1つのRTシステム全体を統括している(アプリケーションに相当する)
> > コンポーネントがあり、そこからシステム全体に対して終了指示を出し
> > たい場合、何か統一的な枠組みはありますでしょうか?
> 
> 終了指示というのは、コンポーネントをExit状態にできればいいのでしょうか?
> でしたら、各コンポーネントに対し、rtc_exit() を呼べば
> (ACTIVE状態の場合は、rtc_stop(), rtc_exit()の順で呼ぶ)終了できるはずです。
> 
> ですので、統括コンポーネントは、サブコンポーネントのオブジェクト
> リファレンスを何らかの方法で取得できていなければなりません。
> 
> マネージャには一応 findComponents というメソッドが用意されています。
> これで、サブコンポーネントを探し出して、listか何かに入れて、
> 終了時に、list内のコンポーネントに対して一気にrtc_exit()を呼んでやれば
> サブコンポーネントも止めることができます。

こちらの findComponents は、同じネーミングサービスに登録されている
コンポーネントであれば(ホストやプロセスが異なっていても)全て検索
できるのでしょうか?

また、引数にコンポーネント名を取るようですが、ワイルドカード指定の
ようなものは可能でしょうか、それとも探すべきコンポーネント名は要求
元で全て把握している必要がありますでしょうか?


> > 例えば以下の例で、統括コンポーネントからの終了指示をもとに、その
> > コンポーネント自身とサブコンポーネント1〜4のスレッドだけでなく、
> > それらを包含するプロセスA〜C(XXXComp の実装方式に準拠)も終了
> > させたい場合、終了指示を適切に伝える方法はありますでしょうか。
> 
> プロセスを終了する公にされている方法はありません。
> ただし、マネージャのメインループ (runManager()) が終了されれば、
> プロセスも終了するので、これがご希望の方法だとおもいます。

はい、この方法を教えて頂きたいと思っていました。


> 本来なら、ユーザプログラムから、マネージャを終了させる
> メソッドを提供すべきなのですが、今のところそういうものはありません。
> #次バージョンでは提供いたします。
> 
> ただし、SIG_INIT(Ctrl+C)の割り込みハンドラhandler()という関数が
> ありまして、こいつを呼ぶとマネージャが終了します。
> 
> ですので、この関数を呼びたい場所のファイルの中で、
> 
> extern "C" void handler (int);
> 
> と宣言しておいて、終了させたいタイミングで、
> 
> handler(0);
> 
> などと呼んでやると、もしかしたらプロセスを終了させられるかもしれません。
> 
> #こちらでもやってみましたが、一応runManager()は抜けるものの、
> #CORBAの例外がでてアボートしました。

通常の場合は、runManager()を含むプロセスは(コンソールウィンドウを
閉じるなどの操作で)強制終了させることになるのでしょうか?


zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
z  宇田 安規男                                                        z
z  NECシステムテクノロジー株式会社  システムテクノロジーラボラトリ  z
z  神奈川県川崎市中原区下沼部 1753  NEC 玉川事業場 9号館               z
z  〒 211-8666   Tel: 044-431-7574  Fax: 044-431-7588                  z
z  E-mail: uda-axa @ necst.nec.co.jp                                     z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz




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