Opened 12 years ago
Closed 12 years ago
#5060 closed Bugs (fixed)
MSM deferred events do not work with g++ 4.2
Reported by: | Owned by: | Christophe Henry | |
---|---|---|---|
Milestone: | Boost 1.46.0 | Component: | msm |
Version: | Boost 1.45.0 | Severity: | Problem |
Keywords: | MSM | Cc: |
Description
When cbuilt with the g++, the deferred events either loop endlessly or result in a crash due to the stack overflow. I've changed the sample Orthogonal-Defered2.cpp void test()
{
player p; needed to start the highest-level SM. This will call on_entry and mark the start of the SM p.start(); test deferred event deferred in Empty and Open, will be handled only after event cd_detected p.process_event(play());
tests some flags std::cout << "CDLoaded active:" << std::boolalpha << p.is_flag_active<CDLoaded>() << std::endl; => false (no CD yet) go to Open, call on_exit on Empty, then action, then on_entry on Open LINES ADDED cout << "--------------------" << endl; p.process_event(open_close()); pstate(p); p.process_event( play() ); pstate(p); cout << "--------------------" << endl; ...etc
and got a core ( Solaris 10 )
Attachments (1)
Change History (3)
by , 12 years ago
Attachment: | Orthogonal-deferred3.cpp added |
---|
comment:1 by , 12 years ago
Component: | None → msm |
---|---|
Owner: | set to |
comment:2 by , 12 years ago
Milestone: | To Be Determined → Boost 1.46.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed for 1.46 and trunk (rev 66490). See also: http://lists.boost.org/Archives/boost/2010/11/172873.php