[erlang-questions] Question about gen_tcp on multiple cores
Fri Aug 3 19:40:36 CEST 2012
We all know in Erlang, writing TCP server is quite easy. For example,
call gen_tcp:accept from multiple Erlang processes, and for each TCP
connection an Erlang process is created to handle the send and receive
However I would like to know more details about the underlying C
layer, here I assume kernel_poll is enabled on Linux, and thread means
the C thread instead of Erlang process. How Erlang utilizes multiple
cores for accepting connections/sending/receiving data?
1) How many threads are created for handling the network operation
such as accept, connect, send and receive?
2) Is epoll_wait() called from multiple threads with same epoll set?
I looked the inet_drv.c, unfortunately I can't figure out the answer from there.
Can someone with the knowledge provide the answer, or more clues?
Thanks for help,
More information about the erlang-questions