12#include <tbb/task_arena.h>
13#include <oneapi/tbb/task_group.h>
14#include <oneapi/tbb/spin_mutex.h>
15#include <oneapi/tbb/spin_rw_mutex.h>
16#include <oneapi/tbb/concurrent_unordered_set.h>
20 class dynamic_task_graph_node;
21 class dynamic_task_graph_spawned_node;
22 class dynamic_task_graph;
23 class dynamic_task_graph_node_repository;
149 ::oneapi::tbb::task_group& arena
247 void wait(
const std::set<dynamic_task_graph_node>& node );
Represents one node in task graph.
Very simple dynamic task graph interface.
std::size_t size() const
Number of tasks in graph.
void wait(dynamic_task_graph_node node)
Wait for one specific node.
::oneapi::tbb::task_group & _task_group
void put(dynamic_task_graph_node &node)
Put a new node into the task graph.
dynamic_task_graph(::oneapi::tbb::task_group &arena)
Construct task graph over arena.
::oneapi::tbb::spin_rw_mutex SpawnedTaskMutex
I originally used.
void wait_for_all()
Wait for all tasks to finish.
SpawnedTaskMutex _spawned_task_mutex
SpawnedTasksContainer _spawned_tasks
Spawned tasks known to system.
void wait(const std::set< dynamic_task_graph_node > &node)
Wait for set of nodes.
std::set< std::shared_ptr< dynamic_task_graph_spawned_node > > SpawnedTasksContainer
See documentation of dynamic_task_graph_spawned_node for a discussion why we have to use smart pointe...
void clean_up_completed_tasks()
Remove all completed task.
I've written an API to IIT, but I'm not currently using.