Starting processes at remote nodes
Fredrik Linder
fredrik.linder@REDACTED
Mon Jun 7 11:27:51 CEST 2004
> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Martin
> Bjorklund
>
> Vance Shipley <vances@REDACTED> wrote:
> > Folks,
> >
> > Is there a good reason why we don't have a proc_lib function
> > to synchronously start a process on a remote node?
>
> proc_lib and gen_* _could_ have these functions, but a supervisor
> should only supervise local processes, otherwise it can't do it's job
> properly - which is to guarantee that workers are running according to
> the specs, and exit if they don't.
>
> Suppose that supervisor S runs on A and supervises W on node B. now
> the link between A and B goes down. S will get a
> {'EXIT',W,noconnection} message. Now what should S do?
>
> The other problem is that the supervision tree is used to find
> processes during code upgrade. If the module for W is upgraded on
> node B, W will not be found.
That only tells us that the supervisor code should only use the local start of gen_*, while those requested functions could still be exported for others to use.
I cannot see any good reason why the start-at-another-node functions could not still be exported from the proc_lib module, unless the proc_lib may only be used by the supervisor... (in which case it shouldn't really be a separate module anyway).
Cheers
/Fredrik
More information about the erlang-questions
mailing list