プロジェクト

全般

プロフィール

バグ #1157

データポート接続とread()呼出で、RTCの実行速度が遅くなる問題

kurihara約14年前に追加. 約14年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2010/01/19
期日:
進捗率:

100%

予定工数:

説明

データポートを接続した状態で、InPort側にてread()を行うとそのRTCの実行周期が約1秒と極端に遅くなる。
データポート接続を切断した直後には、RTCの実行周期が速くなる。
(Java版(r242)、Python版(r157)のでも同様の症状が確認された)

環境:
OS: Ubuntu-8.10(WindowsXPのVMware上)
OpenRTM-aist-1.0.0 (C++版、リビジョン1699)

使用したRTC:
ConsoleIn: m_outOut.addConnectorDataListener()の行はコメントアウトして実行。
ConsoleOut: m_inIn.isNew()とcoil::usleep(1000);の処理はコメントアウトして実行。
rtc.conf:
corba.nameservers: localhost
naming.formats: %h.host_cxt/%n.rtc
logger.enable: NO
example.ConsoleOut.config_file: consout.conf
example.ConsoleIn.config_file: consin.conf
example.ConfigSample.config_file: configsample.conf


関連するチケット

関連している OpenRTM-aist (Java) - バグ #1158: データポート接続とread()呼出で、RTCの実行速度が遅くなる問題終了2010-01-19

関連している OpenRTM-aist (Python) - バグ #1159: データポート接続とread()呼出で、RTCの実行速度が遅くなる問題終了2010-01-19

履歴

#1 kurihara約14年前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率0 から 100 に変更

InPortPushConnector::read()の処理にて、RingBufferからm_buffer->read(data,0,0)にてデータの読み込みが
行われていたため、m_buffer->read(data)に変更を行った。
read()の第二引数が負ではない場合、blockモードでread()処理が行われる。
blockモードでのタイムアウト時間はデフォルトで1秒に設定されているため、表記の現象が起きていた。(リビジョン1791にて対応。)

#2 n-ando約14年前に更新

  • ステータス解決 から 終了 に変更

#3 匿名ユーザー が約14年前に更新

他の形式にエクスポート: Atom PDF