Tue Nov 18 16:17:20 CET 2008
Implementing CSP in a single thread.
Apparently, "CSP semantics" for conditions are inefficient to
implement. One usually chooses for "Mesa semantics", where setting a
condition does not mean a yield, which means that the condition can
change before signalled tasks are effectively woken up. The remedy is
to always check the condition after wake-up (loop before you leap!)
But as far as I can see CSP semantics are only inefficient if task
switches are expensive. The idea is probably that task switches can
be limited if a single thread sets more than one condition in a row.
So, when task switches are cheap (stack machines), this problem goes
away? I'd like to implement this in Staapl.