20 #include <type_traits>
24 template<
typename TDev>
25 class EventGenericThreads;
34 # pragma clang diagnostic push
35 # pragma clang diagnostic ignored "-Wweak-vtables"
38 template<
typename TDev>
41 # pragma clang diagnostic pop
78 template<
typename TDev>
86 :
m_spQueueImpl(std::make_shared<generic::detail::QueueGenericThreadsNonBlockingImpl<TDev>>(dev))
100 return !((*this) == rhs);
104 std::shared_ptr<generic::detail::QueueGenericThreadsNonBlockingImpl<TDev>>
m_spQueueImpl;
110 template<
typename TDev>
117 template<
typename TDev>
122 return queue.m_spQueueImpl->m_dev;
127 template<
typename TDev>
135 template<
typename TDev,
typename TTask>
140 queue.m_spQueueImpl->m_workerThread.submit(task);
145 template<
typename TDev>
150 return queue.m_spQueueImpl->m_workerThread.empty();
#define ALPAKA_DEBUG_FULL_LOG_SCOPE
QueueGenericThreadsNonBlocking(TDev const &dev)
auto operator==(QueueGenericThreadsNonBlocking< TDev > const &rhs) const -> bool
std::shared_ptr< generic::detail::QueueGenericThreadsNonBlockingImpl< TDev > > m_spQueueImpl
auto operator!=(QueueGenericThreadsNonBlocking< TDev > const &rhs) const -> bool
The CPU device queue implementation.
core::CallbackThread m_workerThread
auto operator=(QueueGenericThreadsNonBlockingImpl &&) -> QueueGenericThreadsNonBlockingImpl< TDev > &=delete
QueueGenericThreadsNonBlockingImpl(TDev dev)
~QueueGenericThreadsNonBlockingImpl() override
QueueGenericThreadsNonBlockingImpl(QueueGenericThreadsNonBlockingImpl< TDev > const &)=delete
void enqueue(EventGenericThreads< TDev > &ev) final
enqueue the event
void wait(EventGenericThreads< TDev > const &ev) final
waiting for the event
QueueGenericThreadsNonBlockingImpl(QueueGenericThreadsNonBlockingImpl< TDev > &&)=delete
auto operator=(QueueGenericThreadsNonBlockingImpl< TDev > const &) -> QueueGenericThreadsNonBlockingImpl< TDev > &=delete
TDev const m_dev
The device this queue is bound to.
The alpaka accelerator library.
ALPAKA_FN_HOST auto enqueue(TQueue &queue, TTask &&task) -> void
Queues the given task in the given queue.
ALPAKA_FN_HOST auto wait(TAwaited const &awaited) -> void
Waits the thread for the completion of the given awaited action to complete.
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
static ALPAKA_FN_HOST auto empty(QueueGenericThreadsNonBlocking< TDev > const &queue) -> bool
static ALPAKA_FN_HOST auto enqueue(QueueGenericThreadsNonBlocking< TDev > &queue, TTask const &task) -> void
static ALPAKA_FN_HOST auto getDev(QueueGenericThreadsNonBlocking< TDev > const &queue) -> TDev