···248248249249 case node == from_node do
250250 true ->
251251- case ProcRegistry.register(state.proc_registry, pid, node, name) do
251251+ case ProcRegistry.register(state.proc_registry, pid, name, node) do
252252 :ok -> {:reply, :ok, state}
253253 {:error, _error} -> {:reply, :error, state}
254254 end
···260260 def handle_call({:whereis, from_pid, name}, _from, %State{} = state) do
261261 {:ok, %ProcState{node: node}} = ProcStore.fetch_state(state.proc_store, from_pid)
262262263263- case ProcRegistry.whereis(state.proc_registry, node, name) do
263263+ case ProcRegistry.whereis(state.proc_registry, name, node) do
264264 {:ok, pid} -> {:reply, pid, state}
265265 {:error, :not_found} -> {:reply, nil, state}
266266 end
···512512 # TODO: for local names, send/2 actually raises if the name is not registered
513513 name when is_atom(name) ->
514514 # TODO: use node from sender
515515- case ProcRegistry.whereis(state.proc_registry, :nonode, name) do
515515+ case ProcRegistry.whereis(state.proc_registry, name, :nonode) do
516516 {:ok, pid} -> pid
517517 {:error, :not_found} -> nil
518518 end
519519520520- {node, name} when is_atom(node) and is_atom(name) ->
521521- case ProcRegistry.whereis(state.proc_registry, node, name) do
520520+ {name, node} when is_atom(name) and is_atom(node) ->
521521+ case ProcRegistry.whereis(state.proc_registry, name, node) do
522522 {:ok, pid} -> pid
523523 {:error, :not_found} -> nil
524524 end
+12-12
lib/construct/scheduler/proc_registry.ex
···77 end
8899 @spec register(t, pid, atom, atom) :: :ok | {:error, :name_already_registered | :pid_already_registered}
1010- def register(table, pid, node, name) when is_pid(pid) and is_atom(node) and is_atom(name) do
1111- case whereis(table, node, name) do
1010+ def register(table, pid, name, node) when is_pid(pid) and is_atom(name) and is_atom(node) do
1111+ case whereis(table, name, node) do
1212 {:error, :not_found} ->
1313 case :ets.lookup(table, pid) do
1414 [] ->
1515- :ets.insert(table, {{node, name}, pid})
1616- :ets.insert(table, {pid, {node, name}})
1515+ :ets.insert(table, {{name, node}, pid})
1616+ :ets.insert(table, {pid, {name, node}})
1717 :ok
18181919 [{^pid, _value}] -> {:error, :pid_already_registered}
···2424 end
25252626 @spec whereis(t, atom, atom) :: {:ok, pid} | {:error, :not_found}
2727- def whereis(table, node, name) when is_atom(node) and is_atom(name) do
2828- case :ets.lookup(table, {node, name}) do
2929- [{{^node, ^name}, pid}] -> {:ok, pid}
2727+ def whereis(table, name, node) when is_atom(name) and is_atom(node) do
2828+ case :ets.lookup(table, {name, node}) do
2929+ [{{^name, ^node}, pid}] -> {:ok, pid}
3030 [] -> {:error, :not_found}
3131 end
3232 end
33333434 @spec unregister(t, atom, atom) :: :ok | :error
3535- def unregister(table, node, name) when is_atom(node) and is_atom(name) do
3636- case whereis(table, node, name) do
3535+ def unregister(table, name, node) when is_atom(name) and is_atom(node) do
3636+ case whereis(table, name, node) do
3737 {:ok, pid} ->
3838- :ets.delete(table, {node, name})
3838+ :ets.delete(table, {name, node})
3939 :ets.delete(table, pid)
4040 :ok
4141···4747 @spec remove_process(t, pid) :: :ok | :error
4848 def remove_process(table, pid) when is_pid(pid) do
4949 case :ets.lookup(table, pid) do
5050- [{pid, {node, name}}] ->
5151- :ets.delete(table, {node, name})
5050+ [{pid, {name, node}}] ->
5151+ :ets.delete(table, {name, node})
5252 :ets.delete(table, pid)
5353 :ok
5454