| .PVM.nrecv {rpvm} | R Documentation |
Checks for nonblocking message.
.PVM.nrecv (tid = -1, msgtag = -1)
tid |
tid of sending process (-1 matches any tid) |
msgtag |
integer message tag (>=0) supplied by the user (-1 matches any message tag) |
.PVM.nrecv checks to see whether a message with lable
msgtag has arrived from tid. If a matching message has
arrived, it then immediately places the message in a new active
receive buffer, which also clears the current receive buffer, if any,
and returns the buffer id.
If the requested message has not arrived, then .PVM.nrecv
immediately returns 0.
A -1 in tid or msgtag matches anything. Later
.PVM.bufinfo can be used to find out the tid of the
sending process or msgtag.
.PVM.nrecv is nonblocking in the sense that the routing always
returns immediately either with the message or with the information
that the message has not arrived at the local pvmd yet.
.PVM.nrecv can be called multiple times to check whether a
given message has arrived yet.
If .PVM.nrecv returns with the message, the data in the message
can be unpacked with the PVM.unpack functions.
Returns the id of the new active receive buffer. -1 indicates an error.
Na (Michael) Li nali@umn.edu and A.J. Rossini rossini@u.washington.edu
PVM documentation
.PVM.send, .PVM.recv,
.PVM.bufinfo, PVM.unpack
## Not run: myparent <- .PVM.parent ()
## Not run:
while (1) {
bufid <- .PVM.nrecv (myparent, 4)
if (bufid > 0) {
data <- .PVM.upkintvec ()
# do something ...
break
} else {
# do something else
}
}
## End(Not run)