Unix/Linux Go Back    


Linux 2.6 - man page for pg (linux section 3erl)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


pg(3erl)			     Erlang Module Definition				 pg(3erl)

NAME
       pg - Distributed, Named Process Groups

DESCRIPTION
       This  (experimental)  module implements process groups. A process group is a group of pro-
       cesses 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.

EXPORTS
       create(PgName) -> ok | {error, Reason}

	      Types  PgName = term()
		     Reason = already_created | term()

	      Creates an empty group named PgName on the current node.

       create(PgName, Node) -> ok | {error, Reason}

	      Types  PgName = term()
		     Node = node()
		     Reason = already_created | term()

	      Creates an empty group named PgName on the node Node .

       join(PgName, Pid) -> Members

	      Types  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()

	      Types  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  reg-
	      istered name).

       esend(PgName, Msg) -> void()

	      Types  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  reg-
	      istered name).

       members(PgName) -> Members

	      Types  PgName = term()
		     Members = [pid()]

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

Ericsson AB				  stdlib 1.17.3 				 pg(3erl)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 07:32 PM.