Sending the message will create the atom on the other side if it doesn't already exist. The semantics of how long it sits in the receiver's mailbox depends only on the code running in that process. <span></span><br>
<br>On Saturday, June 15, 2013, Yves S. Garret  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hello,<br><br>I'm reading the book Erlang and OTP in Action and came across this part:<br>
"In Erlang, an atom is a special kind of string constant that is identified only by the<br>
characters in the string, so that two atoms are always considered to be exactly the<br>same if they have the same character representation. But internally, these strings<br>are stored in a table and are referred to by the table index, so that checking atoms <br>

for equivalence at runtime amounts to comparing two small integers; and each time<br>you use an atom, it takes up only one word of memory. (The index number used for<br>any particular atom is automatically assigned at runtime and can vary from one run<br>

of the system to the next; there is no way, and no need, for the user to know this.)"<br><br></div>Now, this got me thinking.  What if I have two systems that send messages to one <br>another.  I update one and include a new atom that I'm using.  This atom gets sent <br>

to system #2 that cannot recognize it just yet.  Does that mean that that message <br>will sit in the receiving thread's queue until it can recognize it or can be <br>handled/thrown away?<br><br></div>As a follow-up question, does it make sense to use atoms in this fashion?<br>

<br></div>Thanks in advance,<br></div>--Yves<br></div>
</blockquote>