[erlang-questions] Question about message passing paradigm
Justin Sheehy
justin@REDACTED
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