服部さま安藤ですコンポーネントは削除する前に終了してあげる必要があります。manager->getComponent("ConsoleIn0")->exit();manager->join();
で試してみていただけないでしょうか?rtc.confのmanager.shutdown_on_no_rtcs:YES を設定する必要があるかもしれません。詳しくはwebページのrtc.confのドキュメントもご覧ください。いま、出先なのでスペルミスなど細かいところで間違いがあったらすみません。2013年3月28日木曜日 服部静子 s.hattori@aist.go.jp:
産総研の服部です。
RTC::Managerで、createComponentしたコンポーネントをdeleteComponetすると、
Windowsの致命的なエラーが発生してしまいます。具体的には、
Windows7環境で、OpenRTM-aist-1.1.0-RELEASE-win32.zipをダウンロードしてVC++10でビルドしました。
ConsoleOutComp.cppのコードをint main (int argc, char** argv)
{
...................// run the manager in blocking mode
// runManager(false) is the default.
//manager->runManager();// If you want to run the manager in non-blocking mode, do like this
manager->runManager(true);manager->deleteComponent("ConsoleOut0");
return 0;
}のように変更して、実行するとエラーが起きます。
DebugモードにしてdeleteComponentを追いかけてみたところ、Componentを削除した後、managerのshutdownが呼ばれ、
shutdownNaming()が実行されたときに、omniORB: ERROR -- A servant has been deleted that is still activated.
id: root<0> (active)
omniORB: Assertion failed. This indicates a bug in the application
using omniORB, or maybe in omniORB itself.
file: omniServant.cc
line: 223
info: activation_foundというエラーが表示されます。その後、再度shutdownNaming()が実行され、そこで致命的なエラーを起こします。
コンポーネントを削除する手順が間違っているのでしょうか?アドバイスをお願いします。
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users
-- 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門 統合知能研究グループ 主任研究員, 博士(工学) 〒305-8568 つくば市梅園1-1-1 中央第2 e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
OpenRTM-aist: http://www.openrtm.orgNoriaki Ando, Ph.D. Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando OpenRTM-aist: http://www.openrtm.org
産総研の服部です。
RTC::Managerで、createComponentしたコンポーネントをdeleteComponetすると、
Windowsの致命的なエラーが発生してしまいます。
具体的には、
Windows7環境で、OpenRTM-aist-1.1.0-RELEASE-win32.zipをダウンロードしてVC++10でビルドしました。
ConsoleOutComp.cppのコードを
int main (int argc, char** argv)
{
...................
// run the manager in blocking mode
// runManager(false) is the default.
//manager->runManager();
// If you want to run the manager in non-blocking mode, do like this
manager->runManager(true);
manager->deleteComponent("ConsoleOut0");
return 0;
}
のように変更して、実行するとエラーが起きます。
DebugモードにしてdeleteComponentを追いかけてみたところ、Componentを削除した後、managerのshutdownが呼ばれ、
shutdownNaming()が実行されたときに、
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root<0> (active)
omniORB: Assertion failed. This indicates a bug in the application
using omniORB, or maybe in omniORB itself.
file: omniServant.cc
line: 223
info: activation_found
というエラーが表示されます。その後、再度shutdownNaming()が実行され、そこで致命的なエラーを起こします。
コンポーネントを削除する手順が間違っているのでしょうか?アドバイスをお願いします。
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users