Sat Jul 18 10:50:30 EDT 2020

Rendez-vous over network?

EDIT: Removed old notes because it appears they were wrong.

Conclusion after trying to implement network-transparent rendez-vous
is that it is not possible, because simultaneity does not exist across
a network link.

I.e. the proper way to model a network communication is to distingish
send and receive as separate events.


1. Use synchronous CSP if simultaneity is available.  It is a powerful
   abstraction mechanism in its own right, and its lack of buffering
   is easy to implement.

2. Asynchronous communication becomes essential when network links are
   introduced.  They appear to introduce an essential

3. It is still possible to implement synchronization across the
   network, but it will NOT have the same properties as rendez-vous.

So what is an asynchronous channel exactly?

It is a channel that does not block on write.  E.g. it looses the
property of being able to block a task until the message is received.