BARRIER(3PVM)							BARRIER(3PVM)

NAME
  pvm_barrier -	Blocks the calling process until all processes in a group
  have called it.

SYNOPSIS
  CC	  int info = pvm_barrier( char *group, int count )

  Fortran call pvmfbarrier( group, count, info ))

PARAMETERS

  group	  Character string group name. The group must exist and	the calling
	  process must be a member of the group.

  count	  Integer specifying the number	of group members that must call
	  pvm_barrier before they are all released. Though not required,
	  count	is expected to be the total number of members of the speci-
	  fied group.

  info	  Integer status code returned by the routine.	Values less than zero
	  indicate an error.

DISCUSSION
  The routine pvm_barrier blocks the calling process until count members of
  the group have called pvm_barrier.  The count	argument is required because
  processes could be joining the given group after other processes have
  called pvm_barrier. Thus PVM doesn't know how	many group members to wait
  for at any given instant. Although count can be set less, it is typically
  the total number of members of the group.  So	the logical function of	the
  pvm_barrier call is to provide a group synchronization.  During any given
  barrier call all participating group members must call barrier with the
  same count value.  Once a given barrier has been successfully	passed,
  pvm_barrier can be called again by the same group using the same group
  name.

  If pvm_barrier is successful,	info will be 0.	If some	error occurs then
  info will be < 0.

EXAMPLES
  C:
	  inum = pvm_joingroup(	"worker" );
		  .
		  .
	  info = pvm_barrier( "worker",	5 );

  Fortran:
	  CALL PVMFJOINGROUP( "shakers", INUM )
	  COUNT	= 10
	  CALL PVMFBARRIER( "shakers", COUNT, INFO )

ERRORS
  These	error conditions can be	returned by pvm_barrier
       PvmSysErr      pvmd was not started or has crashed.
       PvmBadParam    giving a count < 1.
       PvmNoGroup     giving a non-existent group name.
       PvmNotInGroup  calling process is not in	specified group.

SEE ALSO
  pvm_joingroup(3PVM)


Back to the alphabetical listing
Back to the listing of routines for sending and receiving messages