TwistingTwists

TwistingTwists

Registry with DynamicSupervisor

Taking code from livebook here: It tries to do a Registry.lookup for see if the task has been registered in the registry.

https://github.com/livebook-dev/livebook/blob/8ba6baec3a78e01a07d2e64ed06c6ca4f42fde86/lib/livebook/utils/unique_task.ex#L56-L65

So, the {:error, {:already_started, pid}} branch should never be called. Here is the reason:

  1. Whenever, task starts, it will register itself under Registry with {:via , Registry , {k, fun})
  2. If there is a Task => it is in Registry else, simply start the child via DynamicSupervisor.start_child/2

I think I m missing something.

Marked As Solved

LostKobrakai

LostKobrakai

You’re missing the case, where another task starts up in between the calls to Registry.lookup and DynamicSupervisor.start_child. It won’t be there when you ask the registry if it exists, but it will be there when you try to start another instance with the same name.

Where Next?

Popular in Questions Top

baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New

Other popular topics Top

rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49266 226
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

We're in Beta

About us Mission Statement