Opened 10 years ago
Closed 10 years ago
#6951 closed Patches (fixed)
Entry pseudo state and anonymous transition problem
Reported by: | Owned by: | Christophe Henry | |
---|---|---|---|
Milestone: | To Be Determined | Component: | msm |
Version: | Boost 1.51.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Problem
See fig1. If the event from Entry1 to State2_1 is none, Action1 is invoked unexpectedly.
See fig2. If the event from Entry1 to State2_1 is Event1, Action1 is not invoked.
My understanding is that Boost.Msm requires the same event for transitions that to entry pseudo state and from entry pseudo state.
Consider fig3, it's impossible to place correct event from Entry1 to State3_1.
Solution
In the transition process, outer event(Event1) preserved, and in the final phase of processing transition preserved event is invoked. When the event from entry pseudo state is none, avoid preserving outer event. (fix_pseudo_entry_and_none_event.patch)
Test
I tested my patch and all existing tests. All of them passed successfully. The new test, PseudoEntry.cpp, is also included in fix_pseudo_entry_and_none_event.patch.
Attachments (4)
Change History (8)
by , 10 years ago
Attachment: | fig1and2.png added |
---|
by , 10 years ago
Attachment: | multi_from.png added |
---|
by , 10 years ago
Attachment: | fix_pseudo_entry_and_none_event.patch added |
---|
comment:4 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Version: | Boost 1.49.0 → Boost 1.51.0 |
Then closed in 1.51.
patch