a0Receive()

Performs a blocking receive with a datatype.


Syntax

a0tError a0Receive(
a0tPort *port,
int source,
int tag,
a0tRequest *request,
a0tDatatype datatype,
void *address,
int count );

Arguments

Namerd/wrDescription
port read Port to listen to (on caller's node).
source read Source node to listen to.
tag read tag to use.
request write Request descriptor to hold the status.
datatype read Datatype of the data to receive.
address write Address where the received data goes.
count read Number of elements to receive.

Description

This function performs a blocking receive on a given port port, from a given source node source (or A0AnySource if any node will do), with a given tag tag. It blocks the calling thread to receive a message described by datatype.

On return of this function, the variable pointed by request contains an opaque request that can be used later to check the completion status of the receive operation and to get the node number of the sending thread.


Return Values

If an error condition occurs, it returns the error code, otherwise it returns A0ErrOk. Possible values are as follows:
Error CodeDescription
A0Err...Some error occurred.
A0ErrOkSuccessful completion.

See Also

a0IReceive() a0Send() a0ISend() a0ReceiveBuffer() a0_DATATYPES