pvm_recvf man page on YellowDog

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

RECVF(3PVM)			PVM Version 3.4			   RECVF(3PVM)

NAME
       pvm_recvf - Redefines the comparison function used to accept messages.

SYNOPSIS
       C    int (*old)() = pvm_recvf( int (*new)( int bufid, int tid, int tag ))

       Fortran	 NOT AVAILABLE

DESCRIPTION
       The routine pvm_recvf defines the comparison function to be used by the
       pvm_recv, pvm_nrecv, and pvm_probe functions.  It  is  available	 as  a
       means to customize PVM message passing.	pvm_recvf sets a user supplied
       comparison function to evaluate messages for receiving.

       recvf returns the old value of the matching function, or 0 if  the  old
       function was the default matcher

       pvm_recvf  is  intended	for sophisticated C programmers who understand
       the function of such routines (like signal) and who require  a  receive
       routine	that  can  match  on  more  complex  message contexts than the
       default provides.

MATCHING FUNCTION
       The default comparison function evaluates the source  and  message  tag
       associated with all incoming messages.

PARAMETERS
       tid     Integer	task  identifier  of  sending  process supplied by the
	       user.

       tag     Integer message tag supplied by the user.

       bufid   Integer message buffer identifier.

       The matching function should return:

	    Value     Action taken
	    < 0	      Return immediately with this error code.
	      0	      Do not pick this message.
	      1	      Pick this message and do not scan the rest.
	    > 1	      Pick this highest ranked message after
		      scanning them all.

EXAMPLES
       Implementing message probe with recvf, using our matching  function  to
       return information in a global variable.

       #include <pvm3.h>

       static int foundit = 0;

       static int
       foo_match(mid, tid, tag)
	    int mid;
	    int tid;
	    int tag;
       {
	    int t, c;
	    struct pvmminfo header;

	    pvm_getminfo(mid, &header);

	    if ((tid == -1 || tid == header.src) && (tag == -1 || tag == header.tag))
		 foundit = 1;

	    return 0;
       }

       int
       probe(src, tag)
       {
	    int (*omatch)();
	    int cc;

	    omatch = pvm_recvf(foo_match);

	    foundit = 0;

	    if ((cc = pvm_nrecv(src, tag)) < 0)
		 return cc;

	    pvm_recvf(omatch);

	    return foundit;
       }

ERRORS
       No error conditions are returned by pvm_recvf

SEE ALSO
       pvm_bufinfo(3PVM), pvm_getminfo(3PVM), pvm_recv(3PVM), pvm_nrecv(3PVM),
       pvm_probe(3PVM), pvm_trecv(3PVM)

				30 August, 1993			   RECVF(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