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

State machine bug fixes #137

Merged
merged 5 commits into from
Apr 16, 2019
Merged

State machine bug fixes #137

merged 5 commits into from
Apr 16, 2019

Conversation

meyerj
Copy link
Member

@meyerj meyerj commented Feb 9, 2016

This PR contains a subset of the patches in #135, that only fix bugs and do not change the execution semantics of Orocos state machines. We consider to only include those in the 2.9 release but not yet the new execution logic.

167076a solves an issue where the entry program of a state can be aborted by an event in some cases. dc1b39b removes a duplicate call to enableEvents(), which would trigger an assert if RTT is compiled in debug mode. The other two are minor patches for the unit tests.

Peter Soetens and others added 4 commits February 3, 2016 18:51
If entry is not done yet, SM would immediately transition to next state instead of
finishing entry program.

- An event during entry will fail if entry could not be executed atomically (in a single SM step() ).
- We're now transitioning to the other state while processing the event callback in eventTransition() ( stepping=false)

Unit tests:
- Don't read same variable in the global event transitions as in local state transitions, which queries the port and fills it in (see testStateEvents ).
- The testStateOperationSignalGuard is not fixed yet, it receives the last event value instead of the first, while
  both events do arrive in the event queue. It appears that though the callbacks are asyn processed, the datasource is
  already written in both cases, so the first callback executed already sees the value of the second invocation of 'mo'.

Signed-off-by: Peter Soetens <peter@thesourceworks.com>

Conflicts:
	rtt/scripting/StateMachine.cpp
	tests/state_test.cpp
…nstructor to ready() member function

... so that it can be reused in corba_ipc_server without having initialized the Boost Test framework.

This is a regression from 167076a.

Signed-off-by: Johannes Meyer <johannes@intermodalics.eu>
…tivate()

The removed line triggered a failed assert in StateMachine::enableEvents().

Signed-off-by: Johannes Meyer <johannes@intermodalics.eu>
This patch prevents that the OperationCaller falls back to a RemoteOperationCaller implementation
and logs a warning during the test.

Signed-off-by: Johannes Meyer <johannes@intermodalics.eu>
@meyerj meyerj added this to the 2.9 milestone Feb 9, 2016
Signed-off-by: Johannes Meyer <johannes@intermodalics.eu>
@meyerj
Copy link
Member Author

meyerj commented Jun 6, 2016

Merged to toolchain-2.9 branch in 8e4cfc6 and 3acb467.

@meyerj meyerj merged commit 124fd06 into master Apr 16, 2019
@meyerj meyerj deleted the master-statemachine-fixes branch April 16, 2019 09:07
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

Successfully merging this pull request may close these issues.

1 participant