| > just like the concurrent code of gen_server I found this a really interesting read, but this stuck out because it doesn't jive with my mental model of gen_server. gen_server is fully serialized. Even the code underpinning it is not concurrent. Now I guess gen_server does expose some top level functions to simplify sending/receiving a message into the process, but the process itself is serial. And this is part of the genius of gen_server to me. You don't need to think about your state concurrently because it processes a single message at a time. Your system executes concurrently, but the individual components do not. Maybe that is what the post means and I misinterpreted it. |