J'ai un module logique qui indique à un superviseur de démarrer les processus enfants. J'ai besoin de stocker le pid de ces enfants dans l'état des modules logiques. Mais j'ai aussi besoin de mettre à jour un pid childs si le superviseur le redémarre.Enregistrement d'un enfant dans le processus à l'origine de l'appel start_child
Je ne peux donc pas utiliser la valeur de retour pid de l'appel start_child, car cela ne me donne que le pid au premier démarrage, pas les redémarrages. En ce moment, je fais en sorte que le processus fils appelle une fonction de registre (met à jour l'état avec un nouveau pid) dans le module logique à partir de la fonction init de childs. De cette façon, le module logique peut mettre à jour le PID dans son état chaque fois qu'un processus est redémarré. Le module logique est un gen_server et je fais une distribution quand j'inscris le processus fils.
Quelqu'un peut-il voir un problème avec cela et y a-t-il une autre façon plus «correcte» de le faire?