eksperimental

eksperimental

Inagurating this section. :clap:

While working with the DynamicSupervisor library, it is not clear to me whether I can as supervisor a supervisor create by Supervisor in any of the DynamicSupervisor functions and vice-versa.

The specs in DynamicSupervisor mention that supervisor is a t:Supervisor.supervisor/0, but I have the feeling we should have a t:DynamicSupervisor.supervisor/0 of its own, as they don’t interoperate.

Showing Posts 1 to 3

eksperimental

eksperimental OP

Error message does not help as it returns {:error, {:invalid_child_spec, child_spec}} while the spec is valid, but the issue stems from the interop issue.

al2o3cr

al2o3cr

If it existed, a DynamicSupervisor.supervisor() type would have the same values as Supervisor.supervisor() - the possible values are ways to identify an supervisor process, not specific details about the kind of process.

To use a telecom analogy, the type says “this is what patterns of numbers you can dial to reach a remote phone” but doesn’t specify who answers.

Many of the functions in the two modules are nearly identical, but handle arguments a little differently - for instance, start_child:

https://github.com/elixir-lang/elixir/blob/v1.13.4/lib/elixir/lib/supervisor.ex#L821-L837

vs

https://github.com/elixir-lang/elixir/blob/v1.13.4/lib/elixir/lib/dynamic_supervisor.ex#L317-L330

Both ultimately result in a GenServer.call with a message shaped like {:start_child, child_spec}.

eksperimental

eksperimental OP

Yes, but internally, the child spec for DynamicSupervisor is a five-element tuple, and for Supervisor is like the old erlang child spec, with 6 elements IIRC.
The error is cryptic, it says ‘:invalid_child_spec’ and if you call the same function with the same child spec but your suppervisor goes to the local supervisor the the function works fine, since the chld spec was valid.

Having a new type is a way to document that DynamicSupervisor functions expect a DynamicSupervisor and not a regular Supervisor.

— All posts loaded —

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New
marciol
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews