Provided by: pvm-dev_3.4.6-1build2_amd64 bug

NAME

       pvm_freezegroup - Freezes dynamic group membership and caches info locally

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 error.

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  subsequent  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 information  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
       structures. 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)