2017-01-07 4 views
4

エリクサーとOTPの新機能です。 hello-worldの例をGenServerで試してみましょう。各テストでGenServerプロセスが生成されるテストを作成しています。それらは明示的に終了されません。テストが終了した後、プロセスは終了しますか?エリクシールプロセスは、そのPIDへの参照がなくなると死ぬでしょうか?

フォローアップ:終了していない場合は、「ゾンビ」プロセスに変わりますか?また、テストが完了した後に終了するパターンがありますか?

答えて

4

いいえ、プロセスはガベージコレクトされません。はい、彼らは「ゾンビ」プロセスに変わります。

プロセスをリンクするのを防ぐパターンです。 1つのリンクされたプロセスが終了すると、リンクされたすべてのプロセスも終了します。したがって、テストプロセスからGenServer.start_linkを使用してサーバを起動すると、サーバプロセスがテストプロセスにリンクされ、テストが存在するときにサーバも終了します。

関連する問題