Function: stream_wait_event
Applicability
|
Product |
Supported (√/x) |
|---|---|
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
Function Usage
Blocks the running of a specified stream or multiple streams until the specified event is complete. This API is asynchronous.
All subsequent tasks submitted to the stream can be executed only after all tasks captured by the event are complete. For more details, see acl.rt.record_event.
Prototype
- C Prototype
1aclError aclrtStreamWaitEvent(aclrtStream stream, aclrtEvent event)
- Python Function
1ret = acl.rt.stream_wait_event(stream, event)
Parameter Description
|
Parameter |
Description |
|---|---|
|
stream |
Int, pointer address of the stream that needs to wait for the event to complete. Pass 0 if the default stream is used. |
|
event |
Int, pointer address of the event to be waited for. |
Return Value Description
|
Return Value |
Description |
|---|---|
|
ret |
Int, error code: 0 on success; else, failure. |
Restrictions
- This API is asynchronous. The API call delivers a task rather than executes a task. After this API is called, call the synchronization API (for example, acl.rt.synchronize_stream) to ensure that the task is complete.
- acl.rt.record_event and acl.rt.stream_wait_event are used in conjunction for synchronization between streams. When acl.rt.record_event is called, an event resource is allocated. After acl.rt.stream_wait_event is called, acl.rt.reset_event should be called to free the event resource in a timely manner.
API call sequence: acl.rt.create_event-->acl.rt.record_event-->acl.rt.stream_wait_event-->acl.rt.reset_event
- After initialization by calling acl.init in a process, you can call acl.rt.set_op_wait_timeout to set the timeout interval. Tasks delivered by calling acl.rt.stream_wait_event in the process can wait within the configured timeout interval. If the wait time exceeds the configured timeout interval, an error is returned.
The acl.rt.stream_wait_event API is an asynchronous API. Successful API calling only indicates that the task is successfully delivered but not executed. Therefore, if the wait time exceeds the configured timeout interval, an error is reported after the acl.rt.synchronize_stream API is called.