This is an old revision of the document!
We're going to be following the discussion and code experiments in this blog post by Piotr Szymański:
Simple interactions between processes
A few suggestions before you start:
Table
as in the blog. When you get to the section Sending messages back and forth between processes
put that code in a new module called Table2
and use that name in the tests that follow.:observer.start
Piotr suggests running 100 million processes. Don't. If you do too many sends, the process mailbox can get *very* full when the process can't keep up - my poor 4GB MacBook died. Rather, start small and build up to 1 million (this will still take some time). For example:p = Table.start 1..100 |> Stream.map(fn _ -> send p, :ping end) |> Enum.count