Opened 12 years ago

Closed 12 years ago

#5060 closed Bugs (fixed)

MSM deferred events do not work with g++ 4.2

Reported by: voictor.judin@… 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)

Orthogonal-deferred3.cpp (15.5 KB ) - added by anonymous 12 years ago.

Download all attachments as: .zip

Change History (3)

by anonymous, 12 years ago

Attachment: Orthogonal-deferred3.cpp added

comment:1 by Steven Watanabe, 12 years ago

Component: Nonemsm
Owner: set to Christophe Henry

comment:2 by Christophe Henry, 12 years ago

Milestone: To Be DeterminedBoost 1.46.0
Resolution: fixed
Status: newclosed

Fixed for 1.46 and trunk (rev 66490). See also: http://lists.boost.org/Archives/boost/2010/11/172873.php

Note: See TracTickets for help on using tickets.