I have just designed a statechart that includes four states that each call a method that performs some very long looping. The states execute in sequence (synchronously). I wish to allow the user to cancel within this looping. Of course, then the it looks as if I am violating the design principle of RTC (and I don't want to do that).
However, in my statechart there is a state I call "Continuing". It maintains state info about which was the last of the long running states to completely finish. If the user has cancelled at some point, then resumed, the Continuing state is entered, and the next long running state is chosen appropriately.
In my view, I am designing in accord with RTC. For example, my logic is that the completion could either be via finishing the loop or by early cancellation, and it is still RTC. I feel my states behave in accord with RTC principles.
My question is whether others have encountered my type of thinking about design and whether I should be concerned about a flaw in my logic. Any comments or corrections are appreciated!
Regards, Mountain