Hi,
I've looked on GitHub and can't seem to find the version of MSM you refer to below. Can you send me a link (I think you did this once, but I can't seem to find it now).
For example https://github.com/boostorg/msm/tree/msm3, or if you want to see code: https://github.com/boostorg/msm/blob/msm3/test/Lockfree1.cpp It's still in construction, I'm suffering from an acute lack of time :(
As to your question on my application:
I'm considering several possibilities: 1) One or more threads enqueueing events and a separate thread running the state machine processing them.
This can be done with: - a lock before enqueueing, and a lock before executing le queued events. - the msm3 branch above (lockfree msm), I'm working on exactly this and hope to support this very soon. - my upcoming asynchronous library ;-)
2) Multiple cooperating state machines that may send events to each other.
This is what I want to achieve with the lockfree msm. It works so far if you only have simple fsm (no submachine, no queue , though I will speed this up if you need it). HTH, Christophe