thrust / dependencies /libcudacxx /docs /extended_api /synchronization_primitives /pipeline /consumer_wait.md
metadata
grand_parent: Pipelines
parent: cuda::pipeline
cuda::pipeline::consumer_wait
Defined in header <cuda/pipeline>:
// (1)
template <cuda::thread_scope Scope>
__host__ __device__
void cuda::pipeline<Scope>::consumer_wait();
// (2)
template <cuda::thread_scope Scope>
template <typename Rep, typename Period>
__host__ __device__
bool cuda::pipeline<Scope>::consumer_wait_for(
cuda::std::chrono::duration<Rep, Period> const& duration);
// (3)
template <cuda::thread_scope Scope>
template <typename Clock, typename Duration>
__host__ __device__
bool cuda::pipeline<Scope>::consumer_wait_until(
cuda::std::chrono::time_point<Clock, Duration> const& time_point);
- Blocks the current thread until all operations committed to the current pipeline stage complete.
- Blocks the current thread until all operations committed to the current pipeline stage complete or after the specified timeout duration.
- Blocks the current thread until all operations committed to the current pipeline stage complete or until specified time point has been reached.
Parameters
| duration | An object of type cuda::std::chrono::duration representing the maximum time to spend waiting. |
| time_point | An object of type cuda::std::chrono::time_point representing the time when to stop waiting. |
Return Value
false if the wait timed out, true otherwise.
Notes
If the calling thread is a producer thread, the behavior is undefined.
The pipeline is in a quitted state (see cuda::pipeline::quit), the
behavior is undefined.