[erlang-questions] On internals of the VM and message delivery

Tony Rogvall tony@REDACTED
Tue Jan 22 19:16:42 CET 2013

It's in opcodes, look in beam_emu.c 
Search for OpCase(recv_mark_f) there is even some ascii art showing the processes
(not sure if it is up to date)


On 22 jan 2013, at 18:42, Alessandro Sivieri <alessandro.sivieri@REDACTED> wrote:

> Hi all,
> 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).
> 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.
> 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...
> P.S.: sorry if the request is so low level :)
> -- 
> Sivieri Alessandro
> alessandro.sivieri@REDACTED
> http://sivieri.wordpress.com/
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

"Installing applications can lead to corruption over time. 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"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130122/90ca16e4/attachment.htm>

More information about the erlang-questions mailing list