<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On 29 jul 2014, at 21:19, Leo Liu <<a href="mailto:sdl.web@gmail.com">sdl.web@gmail.com</a>> wrote:<br><div><div><br class="Apple-interchange-newline"><blockquote type="cite">Hi there,<br><br></blockquote>Hello.</div><div><br><blockquote type="cite">Could someone help me understand the implementation of erlang:exit/1?<br><br>  BIF_RETTYPE exit_1(BIF_ALIST_1)<br>  {<br>      BIF_P->fvalue = BIF_ARG_1;  /* exit value */<br>      BIF_ERROR(BIF_P, EXC_EXIT);<br>  }<br><br>which is pretty simple and I am not sure how it propagates the exit<br>signal. erlang:exit/2 on the contrary is full of details.<br><br></blockquote><div><br></div>BIFs with one (and more) argument are called from emulator loop in beam_emu.c<div>(R17 source)</div><div>beam_emu.c line 2779 in opcode "call_bif_e"</div><div>and line 3571 in opcode "apply_bif"</div><div>and line 2610 in "i_gc_bif1_jIsId"</div><div><br></div><div>and the rest is just a matter of reading code.</div><div>Hint. The function handler_error may be a good start to look in.</div><div><br></div><div>Have fun :-)</div><div><br></div><div>/Tony</div><div><br></div><blockquote type="cite">Thanks,<br>Leo<br><br>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>http://erlang.org/mailman/listinfo/erlang-questions<br></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px;"><div><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; ">"Installing applications can lead to corruption over time. </span><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; ">Applications gradually write over each other's libraries, partial upgrades occur, user and system errors happen, and minute changes may be unnoticeable and difficult to fix"</span></div><div><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; "><br></span></div></span><br class="Apple-interchange-newline">
</div>
<br></div></body></html>