Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FREEZEGROUP(3PVM)		PVM Version 3.4		     FREEZEGROUP(3PVM)

NAME
       pvm_freezegroup	- Freezes dynamic group	membership and caches info lo-
       cally

SYNOPSIS
       C    int	info = pvm_freezegroup(	char *group , int size)

       Fortran	 call pvmffreezegroup( group, size, info )

PARAMETERS
       group   Character string	group name of an existing group.

       size    Size of the group when it is frozen

       info    size of group on	success. Values	less than 0 indicate  and  er-
	       ror.

DESCRIPTION
       The  routine  pvm_freezegroup makes a dynamic group named group static.
       The  group  information	is   then  "cached"  by	 all  group   members.
       pvm_freezegroup	is  a  synchronizing routine and must be called	by all
       group members to	complete.  size	indicates the size the	dynamic	 group
       should  be  when	made static.  A	value of -1 indicates that the current
       size of the group should	be used.  info returns error information.

       Once a dynamic group has	been frozen with pvm_freezegroup , all	subse-
       quent  operations that can be satisfied with local data use the locally
       held information. For processes that are	 outside  of  the  group,  the
       first group call, e.g., pvm_bcast(), will cause the static group	infor-
       mation to be copied to the calling process.  Subsequent operations then
       use  the	 local information. Barriers are still arbitrated by the group
       server.

       Group members should call  pvm_lvgroup  to leave	the group and free any
       allocated structures that hold the group	information.  Processes	not in
       the group may call  pvm_lvgroup	to free	any locally  allocated	struc-
       tures.  In this case, an	error code of PvmNotInGroup or PvmNoGroup will
       be returned to the caller.

       Barrier are always arbitrated by	the group server, even	if  the	 group
       has been	made static with pvm_freezegroup. If a process leaves a	static
       group while other process are waiting at	a barrier, then	PvmNoGroup  is
       returned	to all processes waiting at the	barrier.  Future barrier calls
       with the	defunct	static group, return the same error.

EXAMPLES
       C:
	       inum = pvm_joingroup("worker");
	    info = pvm_freezegroup( "worker", size );

       Fortran:
	       CALL PVMFJOINGROUP('group2', inum)
	    CALL PVMFFREEZEGROUP( 'group2', size, info )

ERRORS
       These error conditions can be returned by pvm_freezegroup

       PvmSysErr
	      pvmd was not started or has crashed.

       PvmBadParam
	      giving a NULL group name.

       PvmDupGroup
	      trying to	freeze a group that is already frozen.

       PvmNotInGroup
	      trying to	freeze a group that you	are not	in.

BUGS
       There is	no way to unfreeze a group.

       Processes are not notified if a frozen group becomes invalid.

       Having a	non-member process call	pvm_lvgroup to free  structures	 is  a
       bit strange.

SEE ALSO
       pvm_barrier(3PVM), pvm_lvgroup(3PVM)

				 16 March 1995		     FREEZEGROUP(3PVM)

NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | EXAMPLES | ERRORS | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pvm_freezegroup&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help