Communicating Event LoopsDeadlock-free, non-blocking concurrency control
Known near reference
“Immediate” call-return:
val := bob.foo(carol)
Sequential stacking
no synchronized blocks
Happens now
Partition impossible
Possibly remote reference
“Eventual” one-way send:
promise := bob <- foo(carol)
Event-loop queuing
no synchronized blocks
Happens later, and in order ...
… unless partitioned
Previous slide
Next slide
Back to first slide
View graphic version