Hello,
According to the MCAPI 2.015 standard:
The non-blocking versions fill in an mcapi_request_t object and return control to the user before the communication operation is completed.
All non-blocking function can have two non-error return statuses: MCAPI_SUCCESS indicating, that request have completed and all involved buffers can be reused/consumed, and MCAPI_PENDING, indicating that request have not been completed and application should wait for it using mcapi_wait() to release the request.
It is not clean from the standard, should request be created/reserved in case when non-blocking operation has completed with MCAPI_SUCCESS status? Is this behaviour implementation specific?