Downloaded the code, added from NuGet xunit 1.9.1.
Then running it I get an exception :
System.DivideByZeroException was unhandled by user code
HResult=-2147352558
Message=Attempted to divide by zero.
Source=AsyncAwaitFSM
StackTrace:
at AsyncAwaitFSM.MasterAsyncAwaitWithTimeout.<ExecuteJobs>d__13.MoveNext() in c:\Users\charles.ley\Downloads\AsyncAwaitFSM\AsyncAwaitFSM\MasterAsyncAwaitWithTimeout.cs:line 58
InnerException:
I'm not sure this article is about state machines. If you understand what you writing, can you provide more simple example with traditional, but not so simplified scheme. Say, show state machine for parsing calculator's workflow (only binary operations). I.e. user press digit, next some other digit, sign, digit(s) and "=". Show what your async/await can simplify against traditional switch.
Thank you for the excellent article, Sergey! It would be very informative to develop a generalized "augmented finite state machine", where the states, transitions and triggers are described by an external XML document.