[erlang-questions] Question about message passing paradigm

Justin Sheehy <>
Sat Jul 5 17:59:49 CEST 2008


Richard A. O'Keefe wrote:

 > There are actually two slightly different cases depending on
 > A needs "X Y Z as of *now*" (A, B, C, and D must all
 > synchronise), or A needs "X Y Z as of *some* time in the
 > recent past" (B, C, and D must all synchronise but can then
 > send the information to A without waiting for A to receive it).

As you discovered, the only way to feel like you can solve this
as described is to cause all of the processes involved to block
until all processing is completed.

This, of course, leads to all sorts of problems if any of the
processes runs into trouble partway through.

In a more truly concurrent system, there is really no useful
meaning for "now" in a global sense.  When a principal sends
you a message, all you really get to know is that the message
was sent before you received it.  You can build up more useful
details than that, but you can't ever get all the way to "now"
without removing concurrency -- e.g. by making everyone block.

-Justin





More information about the erlang-questions mailing list