When a message is successfully received by the context, it is
stored in the aio by an internal call equivalent to
nng_aio_set_msg()
, then the completion
callback on the aio is executed.
In this case, nng_aio_result()
will
return zero.
The callback function is responsible for retrieving the message
and disposing of it appropriately.
Important
|
Failing to accept and dispose of messages in this case can lead to memory leaks. |
If for some reason the asynchronous receive cannot be completed
successfully (including by being canceled or timing out), then
the callback will still be executed,
but nng_aio_result()
will be non-zero.
Note
|
The semantics of what receiving a message means varies from protocol to protocol, so examination of the protocol documentation is encouraged. |
NNG_ECANCELED
|
The operation was aborted. |
NNG_ECLOSED
|
The context ctx is not open. |
NNG_ENOMEM
|
Insufficient memory is available. |
NNG_ENOTSUP
|
The protocol for context ctx does not support receiving. |
NNG_ESTATE
|
The context ctx cannot receive data in this state. |
NNG_ETIMEDOUT
|
The receive timeout expired. |