<div dir="ltr">Hello<div><br></div><div>As I learn from Programming Erlang, the following is a way to create a parallel server</div><div><br></div><div>
                
        
        
                <div class="" title="Page 278">
                        <div class="">
                                <div class="">
                                        <p><span style="font-size:8pt;font-family:DejaVuSansMono">start_parallel_server() -><br>
{ok, Listen} = gen_tcp:listen(...),
</span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">spawn</span><span style="font-size:8pt;font-family:DejaVuSansMono">(</span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">fun</span><span style="font-size:8pt;font-family:DejaVuSansMono">() -> par_connect(Listen) </span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">end</span><span style="font-size:8pt;font-family:DejaVuSansMono">).
</span></p>
                                        <p><span style="font-size:8pt;font-family:DejaVuSansMono">par_connect(Listen) -><br>
{ok, Socket} = gen_tcp:accept(Listen),
</span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">spawn</span><span style="font-size:8pt;font-family:DejaVuSansMono">(</span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">fun</span><span style="font-size:8pt;font-family:DejaVuSansMono">() -> par_connect(Listen) </span><span style="font-size:8pt;font-family:DejaVuSansMono;font-weight:700;color:rgb(144,17,125)">end</span><span style="font-size:8pt;font-family:DejaVuSansMono">),
loop(Socket). </span></p>
                                </div>
                        </div>
                </div></div><div><br></div><div>I wanted to dissect this code to understand what's going on.</div><div><br></div><div><b>Questions</b></div><div><ol><li>When we call <i>start_parallel_server() </i> on a single machine, a separate process is started (which is controlling process?) executing <i>par_connect</i>, correct?<br></li><li>When <i>gen_tcp:accept</i> accepts a new connection, immediately a new process is created executing <i>par_connect(Listen)</i>. This makes sure that we can accept more requests from the client. Now who is the controlling process for this new process? is the same as Listen?</li></ol><div><br></div></div><div>Thanks</div><div>+ Harit Himanshu</div><div><br></div></div>