[openrtm-users 00433] Re: RTCのデストラクタにつきまして

Ando Noriaki n-ando @ aist.go.jp
2008年 4月 16日 (水) 00:36:04 JST


中島様

安藤です

> 以下2点について質問させてください。
>
>
> (1)「RTCのデストラクタ」について
>
>  RTCの状態遷移がどのように呼ばれるかを確認するためにサンプルソースを
>  作成し、全てのメソッド(constructer/destructer含む)をアンコメントアウト
>  して内部にデバッグライト(以下のようなもの)を入れて、例えばRtc-Linkで「activate」,「exit」
>  などの操作を行った場合に、どのように呼ばれるかを確認しておりましたところ、
>  「exit」「finalize」などを行っても「destructer()」に入らないように思えました。
>
>  ex1) 端末からRTC起動 -> Rtc-Linkで「activate」->「exit」で終了
>  「now in constructer()」
>  「now in onInitialize()」
>  「now in onStartup()」
>  「now in onActivate()」
>  「now in onExecute()」
>     「now in onStateUpdate()」
>  「now in onFinalize()」
>
>  ex2) 端末からRTC起動 -> Rtc-Linkで「activate」-> 「deactivate」->「exit」で終了
>  「now in constructer()」
>  「now in onInitialize()」
>  「now in onStartup()」
>  「now in onActivate()」
>  「now in onExecute()」
>     「now in onStateUpdate()」
>  「now in onDeactivate()」
>  「now in onShutdown()」
>  「now in onFinalize()」
>
> 上記2つの例では、最後に「now in destructer()」というデバッグライトを期待していたのですが、
> 得られませんでした。
>
> デストラクタは呼ばれないのでしょうか?

デストラクタを呼ぶように作ったつもりでしたが、
もしかすると呼ばれないかもしれません。
終了処理周りはちょっと怪しい部分もあるので調査してみます。

> (2) 終了方法について
>
> 以前のMLにもありましたが、端末でRTC(manager?)を起動(./SampleComp)
> した場合、「exit」「finalize」でコンテキストとRTCが終了しても、managerを
> 終了させるには、やはり「ctrl+c」をしなければ終了できないのでしょうか?

RTC::Manager::instance.terminate()
を呼べば終了したと思います。


-- 
安藤慶昭@独立行政法人産業技術総合研究所 研究員
                   知能システム研究部門 タスクインテリジェンス研究グループ
                   〒305-8568 茨城県つくば市梅園1-1-1 中央第2
                   TEL: 029-861-5981 FAX: 029-861-5971
                   n-ando @ aist.go.jp, n-ando @ ieee.org



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