Итак, это мой код:
defmodule Parent do
def arun(pid) do
:ets.new(:my_table,[:named_table, :set, :public, read_concurrency: true])
:ets.give_away(:my_table, pid, [])
end
def receiver do
pid = spawn(fn -> arun(self()) end)
receive do
{'ETS-TRANSFER',_,_,_} ->
IO.puts "ets got transferred"
_ ->
IO.puts "I dont know what happened"
end
end
end
Но когда я пытаюсь скомпилировать это время выполнения, приходит ошибка.
iex(31)> Parent.receiver
17:37:19.183 [error] Process #PID<0.204.0> raised an exception
** (ArgumentError) argument error
(stdlib) :ets.give_away(:my_table, #PID<0.204.0>, [])
parent.ex:4: Parent.arun/1
Также может кто-нибудь сказать мне правильный способ сделатьЕсть таблица и передать ее в собственность другому процессу?Я пытаюсь это сделать: родительский процесс создаст асинхронную задачу, которая создаст таблицу ets, а затем эта задача / процесс вернет владение обратно родительскому процессу.