モジュールのテストをシャットダウンするとspawn_linkプロセスが殺されていません。アーラン:すべてが正常に
tester() ->
receive
X ->
erlang:display("message.."),
tester()
end.
initialize() ->
spawn_link(?MODULE, tester, []),
erlang:display("Started successfully.").
REPL:
length(erlang:processes()). -> 23
Pid = spawn_link(test, initialize, []).
length(erlang:processes()). -> 24
exit(Pid).
length(erlang:processes()). -> 24
生成されたテスターのプロセスがまだ実行されているようです!アプリケーションを終了すると、すべてのspawn_linkプロセスも強制終了されることを確認するにはどうすればよいですか?
でそれを殺すことができるようになります
を:
そして、それを直接起動します。単に初期化関数から正しい
Pid
を返すこの問題を解決するにはexit(Pid) 'は' test:initialize/0'を実行しているプロセスがほとんど瞬時に戻るため実際には失敗します。それは意図的なのでしょうか? – Dogbert