Erlang guarantees causal consistency between two processes, that is messages sent from process A to process B are guaranteed to arrive in the order they are sent, but no guarantee is given on this order in relation to messages arriving from other processes.
My question is: When using the Erlang:trace
function to trace a multiple processes, does this provide a higher level of memory consistency on the order of trace messages received, or do we still have causal consistency?
To put it in a clearer scenario:
If process A is tracing the messages sent by processes B and C, we are guaranteed that trace messages from B are received in order ( causal consistency) but is there any guarantee on their order relative to trace messages from C?
Thanks