Monitores en Erlang
Un monitor vuelve mensaje la muerte de otro proceso.
%% A monitor turns another process's death into a message.
main(_) ->
{Pid, Ref} = spawn_monitor(fun() ->
io:format("Test call on the spare pair~n")
end),
receive
{'DOWN', Ref, process, Pid, Reason} ->
io:format("Worker finished: ~p~n", [Reason])
end,
%% A crash arrives the same way, as data.
{_, Ref2} = spawn_monitor(fun() -> exit(blown_fuse) end),
receive
{'DOWN', Ref2, process, _, Why} ->
io:format("Second worker: ~p~n", [Why])
end.
Cómo funciona
spawn_monitorresponde el pid y una referencia.- El mensaje
'DOWN'carga la razón del final. - Un crash llega igual — la muerte es dato.
Palabras clave y builtins usados aquí
endexitfunreceivespawn_monitor
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 441
- Tokens
- 113
- Ritmo de tres estrellas
- 55 tpm
Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 123 segundos.
Paso 4 de 4 en Procesos; paso 28 de 31 en Fundamentos del lenguaje.