Hi, I'm trying to use MSM to implement a client server component for my app. The client is broadcasting a msg, that servers in a local network will detect and respond. The client at that point will connect to one of the servers and interact following the network protocol. For the network and threading I'm using boost ASIO. 

I have 2 submachines that manage one the discovering part, and the other the connection and dialogue with one server part. I found that would be beneficial to run the submachines in one thread managed by an io_context, with the idea of stopping that context to cancel all the asynchronous operations.

Unfortunately there are some weird behaviours with submachines, and not getting if I missed the right way of doing things or else. the description of my last stopper is here:

https://github.com/boostorg/msm/issues/37

Is anyone able to point me on the right direction?

Regards,
Andrea