[openrtm-users 02543] 外部トリガ実行コンテキストを用いた場合のManager終了処理

金広文男 f-kanehiro @ aist.go.jp
2012年 5月 26日 (土) 13:45:02 JST


金広@産総研です。

OpenRTM-aistの外部トリガ実行コンテキストを使用したC++の
プログラムを作成しています。プログラム終了時には
RTC::Manager::shutdown()
を呼んでいます。
このshutdown()の中で全てのコンポーネントをdeactivateする
処理が行われますが、1.0から1.1に移行したところ、ここに非常に
時間がかかるようになってしまいました。
これは1.1ではコンポーネントをdeactivateする際にINACTIVEステートに
遷移するかタイムアウトするまで待つようになったためと考えています。
(外部トリガ実行コンテキストを使っているのでトリガがかからない限り
状態遷移が起こらない)
もちろんトリガをかければよいのでしょうが、shutdown()を呼んだ
スレッドはブロックされているために、別スレッドから送る必要があり、
面倒に感じています。
何かいい終了手順はありますでしょうか?


More information about the openrtm-users mailing list