typestar

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

  1. spawn_monitor responde el pid y una referencia.
  2. El mensaje 'DOWN' carga la razón del final.
  3. Un crash llega igual — la muerte es dato.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 4 en Procesos; paso 28 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →