Erlang: избегание состояния гонки с помощью gen_tcp: control_process

Я реализую простой TCP-сервер со следующей последовательностью:

{ok, LS} = gen_tcp:listen(Port,[{active, true}, {reuseaddr, true}, {mode, list}]),
{ok, Socket} =  gen_tcp:accept(LS),
Pid = spawn_link(M, F, [Socket]),           
gen_tcp:controlling_process(Socket, Pid) 

Использование параметра {active, true} может вызвать состояние состязания, при котором новый пакет поступает в процесс сокета до того, как & quot; control_process & quot; вызывается, что приводит к тому, что сообщение {tcp, Socket, Data} поступает в родительский процесс вместо дочернего.

Как этого можно избежать?

Ответы на вопрос(2)

Ваш ответ на вопрос