What could go wrong here?
receiver() ->
receive
{first, Msg} ->
io:format("receiver first ~s~n", [Msg]),
receive
{second, Msg} ->
io:format("receiver second ~s~n", [Msg]);
stop ->
io:format("receiver inner STOP~n")
end;
stop ->
io:format("receiver outer STOP~n")
end,
receiver().
Consider this input:
Pid ! {second, "ex3_1 second"},
Pid ! {first, "ex3_1 first"},
Pid ! stop