<div dir="ltr"><div>following the thread <a href="https://groups.google.com/forum/?hl=en#%21topic/erlang-programming/6Q3cLtJdwIU" target="_blank">https://groups.google.com/forum/?hl=en#!topic/erlang-programming/6Q3cLtJdwIU</a><br><br></div>as it seems that POSt to topic does not work<br><br>After more tests the basic questions that remains ..<br><br>Is there a way to have more than one process be blocked<br>in gen_udp:recv/2 call as this seems to not be possible,<br>probably because the way udp sockets work.<br><br>Sequentially works as expected, but when when I try to spawn another process<br>that makes and attempt to execute gen_udp:recv/2 while the first process already does<br>gen_udp:recv/2 , the second process gives elready error. This means that 2 process<br>cannot concurrently do gen_udp:recv/2 .<br><br>In scenario with socket {active, once} or {active, true} there is only one process that can<br>receive the message from socket (the one that does gen_udp:open/2 ),<br>and for multi-threaded applications this quickly can become a bottleneck.<br>In this case, however, elready error disappears of course.<br>.<br>I tried both variants and both have disavantages.<br><br>Is there an idiom for designing a udp concurrent server in Erlang?<br>So far, it seems impossible.</div>