<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sun, Sep 3, 2017 at 8:30 AM Michael Truog <<a href="mailto:mjtruog@gmail.com">mjtruog@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
When you call a function in the io module, what happens? An io:format/1 function call sends the data in an Erlang message and that Erlang message goes into the group leader's Erlang process message queue, to get received when the Erlang process is ready for it. That use of the Erlang process message queue is a form of buffering, ignoring everything that happens after that in the group leader Erlang process.<br><br></blockquote><div><br></div><div>It is definitely asynchronous communication with latency.</div><div><br></div><div>I don't think it is buffering, however, albeit that is a bit philosophical. As soon as the message arrives, it is sent on. In no place do you delay the write in the hope that more data arrives shortly. If anything it acts like a queue, not a buffer.</div></div></div>