GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PVM_RECV (3)

NAME

pvm_recv - Receive a message.

CONTENTS

Synopsis
Parameters
Description
Examples
Errors
See Also

SYNOPSIS


C       int bufid = pvm_recv( int tid, int msgtag )

Fortran call pvmfrecv( tid, msgtag, bufid )

PARAMETERS

tid Integer task identifier of sending process supplied by the user.
msgtag Integer message tag supplied by the user. msgtag should be >= 0.
bufid Integer returns the value of the new active receive buffer identifier. Values less than zero indicate an error.

DESCRIPTION

The routine pvm_recv blocks the process until a message with label msgtag has arrived from tid. pvm_recv then places the message in a new active receive buffer, which also clears the current receive buffer.

A -1 in msgtag or tid matches anything. This allows the user the following options. If tid = -1 and msgtag is defined by the user, then pvm_recv will accept a message from any process which has a matching msgtag. If msgtag = -1 and tid is defined by the user, then pvm_recv will accept any message that is sent from process tid. If tid = -1 and msgtag = -1, then pvm_recv will accept any message from any process.

The PVM model guarantees the following about message order. If task 1 sends message A to task 2, then task 1 sends message B to task 2, message A will arrive at task 2 before message B. Moreover, if both messages arrive before task 2 does a receive, then a wildcard receive will always return message A.

If pvm_recv is successful, bufid will be the value of the new active receive buffer identifier. If some error occurs then bufid will be < 0.

pvm_recv is blocking which means the routine waits until a message matching the user specified tid and msgtag values arrives at the local pvmd. If the message has already arrived then pvm_recv returns immediately with the message.

Once pvm_recv returns, the data in the message can be unpacked into the user’s memory using the unpack routines.

EXAMPLES

C:
        tid = pvm_parent();
        msgtag = 4 ;
        bufid = pvm_recv( tid, msgtag );
        info = pvm_upkint( tid_array, 10, 1 );
        info = pvm_upkint( problem_size, 1, 1 );
        info = pvm_upkfloat( input_array, 100, 1 );

Fortran:         CALL PVMFRECV( -1, 4, BUFID )         CALL PVMFUNPACK( INTEGER4, TIDS, 25, 1, INFO )         CALL PVMFUNPACK( REAL8, MATRIX, 100, 100, INFO )

ERRORS

These error conditions can be returned by pvm_recv
PvmBadParam giving an invalid tid value, or msgtag < -1.
PvmSysErr pvmd not responding.

SEE ALSO

pvm_bufinfo(3PVM), pvm_getminfo(3PVM), pvm_nrecv(3PVM), pvm_unpack(3PVM), pvm_probe(3PVM), pvm_send(3PVM), pvm_mcast(3PVM)
Search for    or go to Top of page |  Section 3 |  Main Index


RECV (3PVM) 30 August, 1993

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.