Я видел, что он используется как флаг "уникальности" при отправке сообщений.
См. этот пример из db_connection
:
def run_child(mod, fun, state, opts) do
ref = make_ref()
arg = [mod, fun, ref, self(), state, opts]
{:ok, pid} = Task.Supervisor.start_child(__MODULE__, __MODULE__, :init, arg)
mon = Process.monitor(pid)
send(pid, {:go, ref, mon})
{pid, mon}
end
def init(mod, fun, ref, conn, state, opts) do
# ...
receive do
{:go, ^ref, mon} ->
# ...
end
end
Здесь make_ref/0
используется для отправки сообщения, которое может быть получено только процессом, зная ссылку.Это относительно простой способ ограничить процессное взаимодействие определенной областью.
Кроме этого ответа мудасобвы, безусловно, является правильным.