Sun Dec 22 14:14:14 CET 2019

How everything is related

When you don't do pre-emptive scheduling:

- The core idea is definitely state machines and transition functions.

- Partial CPS-transformation then links tasks to state machines by
  introducing pre-emption points.

- Representation of the continuations makes the bridge to "monolythic"
  state machines.  I.e. a sum type of the different state context

I really don't like pre-emptive multitasking, but Eric comes to the
conclusion that it is necessary, and that many priority levels are

It's probably ok to combine the two: use the static state machine
tasks with a scheduler.

Actually the ideas are really orthogonal.  My point is really about
the representation of the tasks, not the scheduling.

One remark: I found it easier to write state machines in a language
like Erlang, with the availability of more appropriate types for
representing state, and the ability to pattern-match.  In raw C this
is a real pain.