repg2 v0.0.2 RePG2

The RePG2 interface.

From the Erlang pg2 docs:

This module implements process groups. Each message may be sent to one, some, or all members of the group.

A group of processes can be accessed by a common name. For example, if there is a group named foobar, there can be a set of processes (which can be located on different nodes) which are all members of the group foobar. There are no special functions for sending a message to the group. Instead, client functions should be written with the functions get_members/1 and get_local_members/1 to find out which processes are members of the group. Then the message can be sent to one or more members of the group.

If a member terminates, it is automatically removed from the group.

Summary

Types

A process group name

Functions

Create a process group

Delete a process group

Get a random member of a process group on the local node

Get all members of a process group on the local node

Get all members of a process group

Join a process group

Leave a process group

Get a list of all known groups

Types

name :: term

A process group name.

Functions

create(name)

Specs

create(name) :: :ok

Create a process group.

From the Erlang pg2 docs:

Creates a new, empty process group. The group is globally visible on all nodes. If the group exists, nothing happens.

delete(name)

Specs

delete(name) :: :ok

Delete a process group.

From the Erlang pg2 docs:

Deletes a process group.

get_closest_pid(name)

Specs

get_closest_pid(name) ::
  pid |
  {:error, {:no_such_group, name} | {:no_process, name}}

Get a random member of a process group on the local node.

From the Erlang pg2 docs:

This is a useful dispatch function which can be used from client functions. It returns a process on the local node, if such a process exist. Otherwise, it chooses one randomly.

get_local_members(name)

Specs

get_local_members(name) ::
  [pid] |
  {:error, {:no_such_group, name}}

Get all members of a process group on the local node.

From the Erlang pg2 docs:

Returns all processes running on the local node in the group Name. This function should to be used from within a client function that accesses the group. It is therefore optimized for speed.

get_members(name)

Specs

get_members(name) ::
  [pid] |
  {:error, {:no_such_group, name}}

Get all members of a process group.

From the Erlang pg2 docs:

Returns all processes in the group Name. This function should be used from within a client function that accesses the group. It is therefore optimized for speed.

join(name, pid)

Specs

join(name, pid) ::
  :ok |
  {:error, {:no_such_group, name}}

Join a process group.

From the Erlang pg2 docs:

Joins the process Pid to the group Name. A process can join a group several times; it must then leave the group the same number of times.

leave(name, pid)

Specs

leave(name, pid) ::
  :ok |
  {:error, {:no_such_group, name}}

Leave a process group.

From the Erlang pg2 docs:

Makes the process Pid leave the group Name. If the process is not a member of the group, ok is returned.

which_groups()

Specs

which_groups :: [name]

Get a list of all known groups.

From the Erlang pg2 docs:

Returns a list of all known groups.