プロジェクト

全般

プロフィール

バグ #2320

ECのコールバック実行順序を修正する

n-ando12年以上前に追加. 約12年前に更新.

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

100%

予定工数:

説明

現在のECはon_executeとon_state_updateの実行順序がA,BというRTCが同一ECにアタッチされている場合、

A:on_execute->A:on_state_update->B:on_execute->B:on_state_update

となっているが、OMG RTC標準仕様にしたがって、

A:on_execute->B:on_execute->A:on_state_update->B:on_state_update

となるように修正する。

修正項目としては、
  1. StateMachine::worker() を worker_pre(), worker_do(), worker_post()に分割し、それぞれでpre_do, do, post_doコールバックを呼ぶように変更する。
  2. PeriodicEC内でfor_eachでworker()を呼んでいる部分をworker_pre(), worker_do(), worker_post()に分割する。

関係しているリビジョン

リビジョン 527 (差分)
kurihara約12年前に追加

[incompatible] ExecutionContextBase's super classes have been moved to PeriodicExecutionContext class. refs #2323

[incomaptible API] Now ExecutionContextProfile management has been moved to ExecutionContextBase. getObjRef() is also moved to ExecutionContextBase.
[incompatible behavior] Now onExecute and onStateUpdate execution behavior has been changed when two or more RTCs attached to the EC. refs #2320
Old: A::onExecute, A::onStateUpdate, B::onExecute, B::onStateUpdate
New: A::onExecute, B::onExecute, A::onStateUpdate, B::onStateUpdate

リビジョン 529 (差分)
kurihara約12年前に追加

[incomaptible impl] worker() has been now divided into three functions: worker_pre(), worker_do(), worker_post(). refs #2320

履歴

#1 kurihara約12年前に更新

  • 担当者kurihara にセット

#2 kurihara約12年前に更新

  • ステータス新規 から 担当 に変更

#3 kurihara約12年前に更新

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

r527 , r529 にて対応済み。

#4 n-ando約12年前に更新

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

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