Erlang :Предотвращение состояния гонки с помощью gen _tcp :контроля _процесса

Я реализую простой 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} может вызвать состояние гонки, когда новый пакет поступает в процесс сокета до того, как будет вызван «управляющий процесс _», что приведет к поступлению сообщения {tcp,Socket,Data} к отцу. процесс вместо дочернего.

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

9
задан GabiMe 10 July 2012 в 09:12
поделиться