Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StateMachine execution flow changed wrt run {} #124

Closed
psoetens opened this issue Dec 16, 2015 · 1 comment
Closed

StateMachine execution flow changed wrt run {} #124

psoetens opened this issue Dec 16, 2015 · 1 comment

Comments

@psoetens
Copy link
Member

The run {} program of an RTT State Machine is in v2.9 executed in the cycle after entry {} was executed. Previously, run {} was executed in the same cycle as entry {}, in case entry {} did not yield.

Put in another way, each cycle of an RTT State Machine now starts with executing the run {} program instead of first checking the transitions.

This has a major impact on event transitions. Since event transitions are ignored during entry {}, it is impossible to respond to event operations which would take one cycle after run {} to be processed (you can't put them in entry{} and they will be received too late when put in run{}). In addition, this also means that in this setting, a default transition would always be taken after run {} if the other transitions are all event transitions.

The issue was introduced because there was no clear documentation/formalism on when a StateMachine should go to sleep.

In order to restore the possibility, one could enable events already during entry {}, or allow users to specify in which cycle to execute run {}. This needs more thought.

@meyerj
Copy link
Member

meyerj commented Feb 9, 2016

I think this issue is related to #135 and the above is only true after #135 has been merged. Can we close this issue in favor of the new PR?

@meyerj meyerj closed this as completed Apr 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants