Boost logo

Boost Users :

Subject: Re: [Boost-users] [statechart] state_machinesend_event assertion fails
From: Slava (Viatcheslav.Sysoltsev_at_[hidden])
Date: 2013-06-17 02:48:55


On Fri, 14 Jun 2013 22:36:59 +0200, Gooding, Dustin R. (JSC-ER411)
<dustin.r.gooding_at_[hidden]> wrote:

> "GripperPosition" is my state_machine. "Container" is the simple_state
> the state machine initially enters. Container > has no transitions, but
> many sub states (it's the owner of the 9 orthogonal regions). (As far
> as I can tell, if the state machine is alive, then "Container" is an
> active state.) "Container" has a handful of custom_reactions that
> essentially listen for user-supplied events, "forward" those events in
> to the appropriate orthogonal regions using internal-only events, and
> then discard the user-supplied events. The intention here is to have a
> single event propagate to multiple orthogonal regions, allowing them all
> to react. For example:

AFAIK boost statechart is not thread-safe, so ensure you're not processing
the external events simultaneously.

> I'll post back when/if I ever nail it down. It happens very
> infrequently, but enough to give me heartburn.

For me the assertion condition (+comment before if available) with the
stacktrace at
the assertion moment always explained the issue. Look at
your stack trace, you'll likely see unambiguously what is causing
send_event() in an unstable state.

If the assertion is not reproducible all the time, I'd check for
memory/threading errors with valgrind tools.

-- Slava


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net