Starts a non-blocking receive with a datatype.
a0tError a0IReceive( | | | |
| a0tPort | *port, | |
| int | source, | |
| int | tag, | |
| a0tRequest | *request, | |
| a0tDatatype | datatype, | |
| void | *address, | |
| int | count );
| |
Name | rd/wr | Description |
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. |
This function starts a non-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. A request is posted to receive a message described by datatype.
The received data cannot be used before the completion of the request.
If a NULL is passed as request, no structures are kept after the request completion, so it cannot be tested or waited later. It is supposed that the program has other means to find out if the request has ended, as for example, a subsequent request.
On return of this function, the variable pointed by request contains an opaque request that can be used later to test or wait the completion of the receive operation or get information about it.
Error Code | Description |
A0Err...Some error occurred. | |
A0ErrOkSuccessful completion. | |
a0Receive() a0Send() a0ISend() a0IReceiveBuffer() a0_DATATYPES