21 #ifndef RAJA_DepGraphNode_HPP
22 #define RAJA_DepGraphNode_HPP
24 #include "RAJA/config.hpp"
55 static const int _MaxDepTasks_ = 8;
62 m_semaphore_reload_value(0),
70 std::atomic<int>& semaphoreValue() {
return m_semaphore_value; }
76 int& semaphoreReloadValue() {
return m_semaphore_reload_value; }
81 void reset() { m_semaphore_value.store(m_semaphore_reload_value); }
88 if (m_semaphore_value > 0)
99 while (m_semaphore_value > 0)
103 std::this_thread::yield();
111 int& numDepTasks() {
return m_num_dep_tasks; }
118 int& depTaskNum(
int tidx) {
return m_dep_task[tidx]; }
123 void print(std::ostream& os)
const;
126 int m_dep_task[_MaxDepTasks_];
128 int m_semaphore_reload_value;
129 std::atomic<int> m_semaphore_value;
Definition: AlignedRangeIndexSetBuilders.cpp:35
class RAJA_ALIGNED_ATTR(256) DepGraphNode
Class defining a simple semephore-based data structure for managing a node in a dependency graph.
Definition: DepGraphNode.hpp:44
Header file for RAJA type definitions.