alpaka
Abstraction Library for Parallel Kernel Acceleration
alpaka::generic::detail::EventGenericThreadsImpl< TDev > Class Template Referencefinal

The CPU device event implementation. More...

#include <EventGenericThreads.hpp>

+ Inheritance diagram for alpaka::generic::detail::EventGenericThreadsImpl< TDev >:

Public Member Functions

 EventGenericThreadsImpl (EventGenericThreadsImpl< TDev > const &)=delete
 
 EventGenericThreadsImpl (TDev dev) noexcept
 
auto isReady () noexcept -> bool
 
auto operator= (EventGenericThreadsImpl< TDev > const &) -> EventGenericThreadsImpl< TDev > &=delete
 
auto wait (std::size_t const &enqueueCount, std::unique_lock< std::mutex > &lk) const noexcept -> void
 

Public Attributes

TDev const m_dev
 The device this event is bound to. More...
 
std::size_t m_enqueueCount = 0u
 The number of times this event has been enqueued. More...
 
std::shared_future< void > m_future
 The future signaling the event completion. More...
 
std::size_t m_LastReadyEnqueueCount = 0u
 The time this event has been ready the last time. Ready means that the event was not waiting within a queue (not enqueued or already completed). If m_enqueueCount == m_LastReadyEnqueueCount, the event is currently not enqueued. More...
 
std::mutex m_mutex
 The mutex used to synchronize access to the event. More...
 

Detailed Description

template<typename TDev>
class alpaka::generic::detail::EventGenericThreadsImpl< TDev >

The CPU device event implementation.

Definition at line 29 of file EventGenericThreads.hpp.

Constructor & Destructor Documentation

◆ EventGenericThreadsImpl() [1/2]

template<typename TDev >
alpaka::generic::detail::EventGenericThreadsImpl< TDev >::EventGenericThreadsImpl ( TDev  dev)
inlinenoexcept

Definition at line 33 of file EventGenericThreads.hpp.

◆ EventGenericThreadsImpl() [2/2]

template<typename TDev >
alpaka::generic::detail::EventGenericThreadsImpl< TDev >::EventGenericThreadsImpl ( EventGenericThreadsImpl< TDev > const &  )
delete

Member Function Documentation

◆ isReady()

template<typename TDev >
auto alpaka::generic::detail::EventGenericThreadsImpl< TDev >::isReady ( ) -> bool
inlinenoexcept

Definition at line 40 of file EventGenericThreads.hpp.

◆ operator=()

template<typename TDev >
auto alpaka::generic::detail::EventGenericThreadsImpl< TDev >::operator= ( EventGenericThreadsImpl< TDev > const &  ) -> EventGenericThreadsImpl< TDev > &=delete
delete

◆ wait()

template<typename TDev >
auto alpaka::generic::detail::EventGenericThreadsImpl< TDev >::wait ( std::size_t const &  enqueueCount,
std::unique_lock< std::mutex > &  lk 
) const -> void
inlinenoexcept

Definition at line 45 of file EventGenericThreads.hpp.

Member Data Documentation

◆ m_dev

template<typename TDev >
TDev const alpaka::generic::detail::EventGenericThreadsImpl< TDev >::m_dev

The device this event is bound to.

Definition at line 58 of file EventGenericThreads.hpp.

◆ m_enqueueCount

template<typename TDev >
std::size_t alpaka::generic::detail::EventGenericThreadsImpl< TDev >::m_enqueueCount = 0u

The number of times this event has been enqueued.

Definition at line 62 of file EventGenericThreads.hpp.

◆ m_future

template<typename TDev >
std::shared_future<void> alpaka::generic::detail::EventGenericThreadsImpl< TDev >::m_future

The future signaling the event completion.

Definition at line 61 of file EventGenericThreads.hpp.

◆ m_LastReadyEnqueueCount

template<typename TDev >
std::size_t alpaka::generic::detail::EventGenericThreadsImpl< TDev >::m_LastReadyEnqueueCount = 0u

The time this event has been ready the last time. Ready means that the event was not waiting within a queue (not enqueued or already completed). If m_enqueueCount == m_LastReadyEnqueueCount, the event is currently not enqueued.

Definition at line 63 of file EventGenericThreads.hpp.

◆ m_mutex

template<typename TDev >
std::mutex alpaka::generic::detail::EventGenericThreadsImpl< TDev >::m_mutex
mutable

The mutex used to synchronize access to the event.

Definition at line 60 of file EventGenericThreads.hpp.


The documentation for this class was generated from the following file: