On 23 Feb 2017, 13:09 +0100, José Valim <[email protected]>, wrote:
> > > What if we had a custom supervisor implementation that would always call > > > child_spec before restarting? > > > > It is the opposite, if the supervisor restarts, then it reloads the > > child_spec. The problem is all other scenarios where any of the modules in > > your system may change but the supervisor did not (because it didn't have > > to). Examples of this include: > > > > 1. When compiling a Phoenix a project in development, we would need to > > traverse your application tree and ask all supervisors to reload childspecs > > > > 2. When building a relup, the release needs to go through all supervisors > > and tell them to reload childspecs > > > > Another way to put it is that, in the same way our current > > worker/supervisor is broken because it moves the child_spec logic out of > > the supervisor, removing start_link will be broken because it moves the > > start_link logic inside the supervisor and outside of the supervised module. > I'm proposing that the supervisor *always* reloads the child spec before restarting a child. That way the problem goes away in both examples you showed. Michał. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/55932eea-667c-49d6-8de8-1cd263a61988%40Spark. For more options, visit https://groups.google.com/d/optout.
