[erlang-questions] Pass Name to Dynamic Supervisors

Garrett Smith <>
Fri Sep 9 19:03:30 CEST 2011


On Wed, Sep 7, 2011 at 9:09 PM, Christopher Wilson <> wrote:
> Is there a way to pass a name/ID into the call to supervisor:start_child,
> more specifically to init()?  I'd like to specify the name of the worker or
> supervisor such that when I ran supervisor:which_children I could identify
> what's what.
> Also, I've tried [unsuccessfully] to dynamically create a child spec and add
> pass that in.  Are there any decent examples out there on how to do this
> outside of the man pages?

Take a look at:

https://github.com/esl/gproc

I'm not sure if that's the canonical repository -- maybe Ulf can weigh in.

It's tempting, but I find it's best not to mess with the vanilla
supervisory facility and instead use gproc for getting a list of named
processes. You can also use gproc to publish interesting process stats
to consumers, thus avoiding costly and intrusive queries to the
processes themselves.

This paper:

https://github.com/esl/gproc/blob/master/doc/erlang07-wiger.pdf?raw=true

provides the background for gproc and is otherwise an excellent read!

You'll have a slight learning curve with gproc, but it's an
*indispensable* tool so well worth it.

It needs to be in the core :)

Garrett



More information about the erlang-questions mailing list