Tue Jan 28 05:58:35 EST 2020
Actually this is a game changer. 2-way synchronization is more
abstract: no longer necessary to prove that one machine is in time to
pick up output of another machine.
So nothing new, really, but I do have a way to think about things in
the abstract. This is very different.
That said I do need practice. I can't just "see" it at the state
EDIT: Here's a thing: "select" is the same as "priority cond".
E.g. in async_transmit: wordClock is responded to first.
So let's abstract a synchronous send as an asynchronous send combined
with a synchronous receive of ack.
If it is easier to to have a level transition for the ack, so so, but
add an edge detector somewhere.