<div dir="ltr"><div>To add to Bob's answer:</div><div><br></div>From the <a href="http://www.erlang.org/doc/reference_manual/processes.html#id83186" target="_blank">documentation</a>:<div><br><i>The default behaviour when a process receives an exit signal with an exit reason other than normal, is to terminate and in turn emit exit signals with the same exit reason to its linked processes. An exit signal with reason normal is ignored.<br>

<br>A process can be set to trap exit signals by calling:</i><br><br><font face="courier new, monospace">process_flag(trap_exit, true)</font><br><br><i>When a process is trapping exits, it will not terminate when an exit signal is received. Instead, the signal is transformed into a message {'EXIT',FromPid,Reason} which is put into the mailbox of the process just like a regular message.<br>

<br>An exception to the above is if the exit reason is kill, that is if exit(Pid,kill) has been called. This will unconditionally terminate the process, regardless of if it is trapping exit signals or not.</i></div><div>
<i><br>
</i></div><div>Usually the trap_exit flag is set in the initialization function of a process, which you could add to your drop.erl module:</div><div><br></div><div><font face="courier new, monospace">init() -></font></div>

<div><font face="courier new, monospace">    process_flag(trap_exit, true),</font></div><div><font face="courier new, monospace">    drop().</font></div><div><br></div><div>and spawn the drop process with <span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;color:rgb(167,29,93);white-space:pre-wrap">spawn_link</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">(</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced">drop</span><span style="vertical-align:baseline;line-height:18px;font-size:12px;white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;margin:0px;border:0px;padding:0px">,</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced"> init</span><span style="vertical-align:baseline;line-height:18px;font-size:12px;white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;margin:0px;border:0px;padding:0px">,</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced"> </span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">[</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">]</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">) instead of </span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;color:rgb(167,29,93);white-space:pre-wrap">spawn_link</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">(</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced">drop</span><span style="vertical-align:baseline;line-height:18px;font-size:12px;white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;margin:0px;border:0px;padding:0px">,</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced"> drop</span><span style="vertical-align:baseline;line-height:18px;font-size:12px;white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;margin:0px;border:0px;padding:0px">,</span><span style="line-height:18px;font-size:12px;background-color:rgb(250,250,248);white-space:pre-wrap;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced"> </span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">[</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">]</span><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">).</span></div>

<div><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap"><br></span></div>

<div><span style="margin:0px;padding:0px;border:0px;font-family:Monaco,'Bitstream Vera Sans Mono',Courier,monospaced;font-size:12px;line-height:18px;vertical-align:baseline;white-space:pre-wrap">Note that <a href="http://www.erlang.se/doc/programming_rules.shtml#HDR22" target="_blank">as few processes as possible should trap exit signals.</a></span></div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 13, 2014 at 8:36 AM, Yves S. Garret <span dir="ltr"><<a href="mailto:yoursurrogategod@gmail.com" target="_blank">yoursurrogategod@gmail.com</a>></span> 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>Hello,<br><br></div>I've recently created the following two modules from a book:<br><a href="http://bin.cakephp.org/view/1356260281" target="_blank">http://bin.cakephp.org/view/1356260281</a><br>
<a href="http://bin.cakephp.org/view/13533081" target="_blank">http://bin.cakephp.org/view/13533081</a><br>
<br></div>Now, when I send Pid ! {moon, asdf}. I get the following output:<br>39> Pid ! {moon, w}.<br>Received the input and sending now.<br>Received the input to drop.<br>{moon,w}<br><br>=ERROR REPORT==== 12-Jan-2014::19:31:38 ===<br>

Error in process <0.162.0> with exit value: {badarith,[{drop,fall_velocity,2,[{file,"drop.erl"},{line,27}]},{drop,drop,0,[{file,"drop.erl"},{line,17}]}]}<br><br></div>Why am I not seeing this line run?<br>

io:format("FAILURE: ~p died because of ~p.~n~n", [Pid, Reason]);<br></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>