<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">It's in opcodes, look in beam_emu.c <div>Search for OpCase(recv_mark_f) there is even some ascii art showing the processes</div><div>(not sure if it is up to date)</div><div><br></div><div>/Tony</div><div><br><div><div>On 22 jan 2013, at 18:42, Alessandro Sivieri <<a href="mailto:alessandro.sivieri@gmail.com">alessandro.sivieri@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi all,<div><br></div><div>probably someone in this ml is able to give me a pointer to the correct source code: I am trying to follow the path of a message from the send operation in Erlang to the driver through the VM, and from the reception of the packets from the network to the delivery of the message in Erlang (when the "receive" operator is used).</div>

<div>Now, I was able to follow the "send" path thoroughly, but I am stuck in the "receive" path: I went from the io.c:driver_output to dist.c:erts_net_message to erl_message.c:erts_queue_dist_message, and at this point the received message is put inside the process queue.</div>

<div>Where is the message extracted then? I guess that somewhere the message is taken from the queue, the binary stream (the message, because the header is already extracted in dist.c) unpacked into a term and the term given to the process, and in particular I am looking for the place where the term is unpacked...</div>

<div><br></div><div>P.S.: sorry if the request is so low level :)<br clear="all"><div><br></div>-- <br>Sivieri Alessandro<br><a href="mailto:alessandro.sivieri@gmail.com" target="_blank">alessandro.sivieri@gmail.com</a><br>

<a href="http://sivieri.wordpress.com/" target="_blank">http://sivieri.wordpress.com/</a><br>
</div></div>
_______________________________________________<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; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><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>