aclrtProcessReport
Description
In asynchronous task scenarios, call this API to set the timeout interval and wait for the callback task delivered by aclrtLaunchCallback to be executed.
This API must be work with the following APIs to implement the callback function in asynchronous scenarios:
- Define and implement a callback function. Function prototype: typedef void (*aclrtCallback)(void *userData)
- Create a thread. Call aclrtProcessReport in the thread function to set the timeout interval (cyclic calling is required), and wait for the callback task execution.
- Call aclrtSubscribeReport to bind the thread created in Step 2 to the stream. The callback function delivered by the stream is executed in the bound thread.
- Execute an asynchronous task (for example, an asynchronous inference job) on the specified stream.
- Call aclrtLaunchCallback to deliver a callback task in the task queue of the stream and trigger the thread created in step 2 to process the callback function. Each time aclrtLaunchCallback is called, the callback function is executed.
- After all asynchronous tasks are executed, call aclrtUnSubscribeReport to unsubscribe from the thread.
Prototype
aclError aclrtProcessReport(int32_t timeout)
Parameters
|
Parameter |
Input/Output |
Description |
|---|---|---|
|
timeout |
Input |
Timeout period (ms). Value range:
|
Returns
The value 0 indicates success, and other values indicate failure. For details, see aclError.
Parent topic: Execution Control