1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
.TH pvm_recv 1 "May 1998" "Scilab // Group" "Scilab function"
.so ../sci.an
.SH NAME
pvm_recv - receive a message.
.SH CALLING SEQUENCE
.nf
[buff, info] = pvm_recv(tid, msgtag)
.fi
.SH PARAMETERS
.TP 5
tid
: integer, task identifier of sending process supplied by the user.
.TP 5
msgtag : integer, message tag supplied by the user. msgtag should be
>= 0.
.TP 4
buff
: scilab variable, where the received message will be stored.
.TP 6
info
: integer, status code returned by the routine. Values less than zero indicate an error.
.SH DESCRIPTION
\fVpvm_recv\fR
blocks the process until a message with label
.I msgtag
has arrived from
.I tid.
pvm_recv then places the message in \fIbuff\fR.
.PP
A -1 in
.I msgtag
or
.I 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.
.PP
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.
.PP
.I info
will be the status code returned by the routine.
If some error occurs then
.I info
will be < 0.
.PP
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.
.PP
Once pvm_recv returns, the data in the message can be unpacked
into the user's memory using the unpack routines.
.SH EXAMPLE
.nf
[b,info] = pvm_recv(pvm_parent(),100)
g = pvm_recv(pvm_parent(),200)
.fi
.SH SEE ALSO
pvm_send, pvm_bcast
|