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

Containers or behaviors contained in a concurrency state are not executed when entering the concurrency state again #7

Closed
dvanthienen opened this issue May 1, 2016 · 1 comment
Assignees

Comments

@dvanthienen
Copy link

@dvanthienen dvanthienen commented May 1, 2016

Containers or behaviors contained in a concurrency state are not executed when entering the concurrency state again. See attached example:
A concurrency state has two concurrent states, 1) a container, containing a ContainerLogger state and a Wait state, and
2) a NotContainerLogger state. After this concurrency state is finished, another logger logs a "end of iteration" message and reenters the concurrency state.

Both ContainerLogger and NotContainerLogger state will log a message when executed the first time (=desired behavior), however, the following iterations, the ContainerLogger is not executed anymore (=the bug).

test_concurrency_sm.py.txt

@pschillinger pschillinger self-assigned this May 1, 2016
@pschillinger

This comment has been minimized.

Copy link
Member

@pschillinger pschillinger commented May 1, 2016

Fixed it, thanks for pointing that out!

Note that, in your example, the NotContainerLogger can preempt the container. In general, it is not guaranteed that the inner container will be executed at all since the LogState immediately returns an outcome. In order to wait for both the LogState and the container to finish, connect them to the same outcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.