Question

Qu'est-ce qui se passe lorsque le processus qui est propriétaire d'un port meurt donné naissance et est relancé par le superviseur?

  1. Y at-il un moyen pour le vieux port de ne pas mourir avec son propriétaire et pour le nouveau propriétaire de « prendre en charge »?

  2. A défaut, il est possible de faire en sorte que les processus se termine de donné naissance lorsque ses filières de port?

Était-ce utile?

La solution

Tout d'abord, notez que vous ne voulez pas le propriétaire du port de mourir. Donc déplacer tout code « dangereux » vers un autre processus et rendre le propriétaire du port aussi stupide que possible. Ceci est d'atténuation d'erreur, la façon dont Erlang. Maintenant, si ce processus meurt, quelque chose est vraiment mauvais, donc dans ce cas, il peut être intelligent de recycler le port ainsi. Mais depuis que nous avons déménagé tout en, nous comptons sur ce pas le cas.

En ce qui concerne 2, le port envoie un message spécifique quand il se termine, de sorte que vous pouvez organiser votre processus donné naissance à de détecter grâce et cette fin avec elle. Voir

http://www.erlang.org/doc/reference_manual/ports.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top