バグ #2319
ECのコールバック実行順序を修正する
ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
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
となるように修正する。
修正項目としては、- StateMachine::worker() を worker_pre(), worker_do(), worker_post()に分割し、それぞれでpre_do, do, post_doコールバックを呼ぶように変更する。
- PeriodicEC内でfor_eachでworker()を呼んでいる部分をworker_pre(), worker_do(), worker_post()に分割する。
関連するチケット
Now ExecutionContextProfile management has been moved to ExecutionContextBase. getObjRef() is also moved to ExecutionContextBase. Now onExecute and onStateUpdate execution behavior has been changed when two or more RTCs attached to the EC. Old: A::onExecute, A::onStateUpdate, B::onExecute, B::onStateUpdate New: A::onExecute, B::onExecute, A::onStateUpdate, B::onStateUpdate refs #2319