[erlang-questions] supervisor children's pid

Roberto Ostinelli roberto@REDACTED
Wed May 18 11:26:54 CEST 2011


> > }  is this the best strategy to achieve this?
> >
> > Yes, use supervisor:which_children/1 to learn the siblings.
>
> No, if he's using anything other than one_for_all strategy the Pids
> he learns this way may become stale in the future.
>

fortunately, it is a one_for_all strategy, but good point.

Usual ways to handle this:
>
>  * Register the processes, if the names need to be dynamic supervisor
>    can compute them at init/1 and pass to children in arguments.
>

no can do, these have to be anonymous.


>  * Run a name resolution server somewhere and have all the children
>    subscribe to it. The server will monitor them and may provide
>    notification facility to announce Pid changes/availability to
>    anyone interested -- this lets you do safe startup of dependent
>    processes.
>

probably the best would be then to have a gen_event module for this. this is
a good idea.


>  * In some cases, you'd start_link those child processes from one
>    master server directly (not from supervisor), and use their Pids
>    directly. Only makes sense if they're very closely bound.
>

i'm adding supervisors because i need it to be as OTP compliant as possible,
so I'm actually moving away from this solution.

thank you very much vance and jachym for these insights.

r.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110518/8963fb75/attachment.htm>


More information about the erlang-questions mailing list