Dzień dobry, mam następujące ustawienia dla mojego małego usługi:Erlang. Poprawny sposób, aby zatrzymać proces
-module(mrtask_net).
-export([start/0, stop/0, listen/1]).
-define(SERVER, mrtask_net).
start() ->
Pid = spawn_link(fun() -> ?MODULE:listen(4488) end),
register(?SERVER, Pid),
Pid.
stop() ->
exit(?SERVER, ok).
....
A oto fragmencie repl:
([email protected])83> mrtask_net:start().
<0.445.0>
([email protected])84> mrtask_net:stop().
** exception error: bad argument
in function exit/2
called as exit(mrtask_net,ok)
in call from mrtask_net:stop/0
([email protected])85>
Jak widać, proces zatrzymywania wywołuje błędu, proces zatrzymuje się jednak. Co oznacza ten błąd i jak czynić rzecz czystą?
+1 Będąc w stanie odczytać dokumentację można być tak samo cenne, jak znajomość języka na wylot. – BRampersad