From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/stdlib/doc/src/pg.xml | 132 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 lib/stdlib/doc/src/pg.xml (limited to 'lib/stdlib/doc/src/pg.xml') diff --git a/lib/stdlib/doc/src/pg.xml b/lib/stdlib/doc/src/pg.xml new file mode 100644 index 0000000000..66b9702ae0 --- /dev/null +++ b/lib/stdlib/doc/src/pg.xml @@ -0,0 +1,132 @@ + + + + +
+ + 1996 + 2007 + Ericsson AB, All Rights Reserved + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + + + pg + + + + +
+ pg + Distributed, Named Process Groups + +

This (experimental) module implements process groups. A process + group is a group of processes that can be accessed by a common + name. For example, a group named foobar can include a set + of processes as members of this group and they can be located on + different nodes.

+

When messages are sent to the named group, all members of + the group receive the message. The messages are serialized. If + the process P1 sends the message M1 to the group, + and process P2 simultaneously sends message M2, then + all members of the group receive the two messages in the same + order. If members of a group terminate, they are automatically + removed from the group.

+

This module is not complete. The module is inspired by the ISIS + system and the causal order protocol of the ISIS system should + also be implemented. At the moment, all messages are serialized + by sending them through a group master process.

+
+ + + create(PgName) -> ok | {error, Reason} + Create an empty group + + PgName = term() + Reason = already_created | term() + + +

Creates an empty group named PgName on the current + node.

+
+
+ + create(PgName, Node) -> ok | {error, Reason} + Create an empty group on another node + + PgName = term() + Node = node() + Reason = already_created | term() + + +

Creates an empty group named PgName on the node + Node.

+
+
+ + join(PgName, Pid) -> Members + Join a pid to a process group + + PgName = term() + Pid = pid() + Members = [pid()] + + +

Joins the pid Pid to the process group PgName. + Returns a list of all old members of the group.

+
+
+ + send(PgName, Msg) -> void() + Send a message to all members of a process group + + PgName = Msg = term() + + +

Sends the tuple {pg_message, From, PgName, Msg} to + all members of the process group PgName.

+

Failure: {badarg, {PgName, Msg}} if PgName is + not a process group (a globally registered name).

+
+
+ + esend(PgName, Msg) -> void() + Send a message to all members of a process group, except ourselves + + PgName = Msg = term() + + +

Sends the tuple {pg_message, From, PgName, Msg} to + all members of the process group PgName, except + ourselves.

+

Failure: {badarg, {PgName, Msg}} if PgName is + not a process group (a globally registered name).

+
+
+ + members(PgName) -> Members + Return a list of all members of a process group + + PgName = term() + Members = [pid()] + + +

Returns a list of all members of the process group + PgName.

+
+
+
+
+ -- cgit v1.2.3