pvm_getfds man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

GETFDS(3PVM)			PVM Version 3.4			  GETFDS(3PVM)

NAME
       pvm_getfds - Get file descriptors in use by PVM.

SYNOPSIS
       C    int nfds = pvm_getfds( int **fds )

       Fortran	 Not Available

PARAMETERS
       fds     Returns integer array of file descriptors.

DESCRIPTION
       A  PVM  task uses sockets to communicate between libpvm and other tasks
       or the pvmd.  It is sometimes useful to know the file  descriptor  num‐
       bers  of	 the  sockets in order to wait from input from either PVM mes‐
       sages or an external source.  For example, the  PVM  console  waits  on
       both  keyboard  input and notify messages.  Input can be multiplexed by
       polling all sources, but this wastes cpu cycles.	 Instead, the select()
       system  call can be used to wait until one or more sources of input are
       ready.

       If it completes successfully, pvm_getfds returns the number of  sockets
       in  use,	 and  the  file	 descriptor numbers in an array (allocated and
       freed by libpvm).  At least one socket  always  exists  (from  task  to
       pvmd),  and  its	 descriptor  is	 always fds[0].	 The number of sockets
       varies as direct routes are established to other tasks.

       It can be difficult to track the set  of	 file  descriptors  if	direct
       routing	is  enabled, because routes are created as messages are either
       sent or received.  The simplest approach is to disable direct routing.

       When select returns with a PVM file descriptor ready, a	complete  mes‐
       sage  may  be  ready  to be received, or instead only a fragment may be
       waiting.	 pvm_nrecv or pvm_probe should be used test without blocking.

RESTRICTIONS
       pvm_getfds is only available when running PVM on a Unix or similar sys‐
       tem.

EXAMPLES
       The  following  program	fragment  waits until either keyboard input is
       available, or a PVM message has arrived.

	    int *d;
	    fd_set r;

	    pvm_setopt(PvmRoute, PvmDontRoute);
	    pvm_getfds(&d);

	    FD_ZERO(&r);
	    FD_SET(0, &r);
	    FD_SET(d[0], &r);
	    while (1) {
		 if (select(d[0] + 1, &r, (fd_set*)0, (fd_set*)0,
			    (struct timeval*)0) > 0) {
		      if (FD_ISSET(0, &r))
			   ...	  /* read keyboard input */
		      if (FD_ISSET(d[0], &r) && pvm_nrecv(-1, -1) > 0)
			   ...	  /* got a PVM message */
		 }
	    }

ERRORS
       The following error condition can be returned by pvm_getfds:

       PvmSysErr
	      pvmd not responding.

SEE ALSO
       pvm_notify(3PVM), pvm_trecv(3PVM)

				 22 Nov, 1994			  GETFDS(3PVM)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net