Packages

Compatibility layer for pg and pg2

Current section

Files

Jump to
uni_pg lib uni_pg pg.ex
Raw

lib/uni_pg/pg.ex

defmodule UniPg.Pg do
def join(scope, group, pids) when is_list(pids) do
ensure_started(scope)
:pg.join(scope, group, pids)
end
def leave(scope, group, pids) when is_list(pids) do
ensure_started(scope)
:pg.leave(scope, group, pids)
end
def get_local_members(scope, group) do
ensure_started(scope)
:pg.get_local_members(scope, group)
end
def get_members(scope, group) do
ensure_started(scope)
:pg.get_members(scope, group)
end
def which_groups(scope) do
ensure_started(scope)
:pg.which_groups(scope)
end
# Util
defp ensure_started(scope) do
# Duplicated :pg.start() has no effect and takes only 5us.
:pg.start(scope)
end
end