Concurrent state machine

State machine can hold parallel states also known as regions. This feature allows multiple sub state machine to react to the same set of events. Each sub state machine evolves on its own.

Upon entering a parallel state, the sub state machines enter in their initial state.

When all states have reached their final state, the parallel state is left. Another way to leave a parallel state is when a transition goes to a state outside the parallel state.

Here is the UrlGet example where a web page is fetched through HTTP and a file is downloaded through FTP.