Home
last modified time | relevance | path

Searched refs:node (Results 1 – 25 of 70) sorted by relevance

123

/oneTBB/src/tbb/
H A Dintrusive_list.h38 static intrusive_list_node& node ( T& item ) { return List::node(item); } in node() function
40 static T& item ( intrusive_list_node* node ) { return List::item(node); } in item() argument
42 static const T& item( const intrusive_list_node* node ) { return List::item(node); } in item() argument
134 __TBB_ASSERT( node(val).my_prev_node == &node(val) && node(val).my_next_node == &node(val), in push_front()
146 …__TBB_ASSERT( node(val).my_prev_node != &node(val) && node(val).my_next_node != &node(val), "Eleme… in remove()
147 …__TBB_ASSERT( node(val).my_prev_node->my_next_node == &node(val) && node(val).my_next_node->my_pre… in remove()
149 node(val).my_next_node->my_prev_node = node(val).my_prev_node; in remove()
150 node(val).my_prev_node->my_next_node = node(val).my_next_node; in remove()
152 node(val).my_prev_node = node(val).my_next_node = &node(val); in remove()
224 static T& item ( intrusive_list_node* node ) { return *static_cast<T*>(node); } in item() argument
[all …]
H A Dconcurrent_monitor.h205 if (!node.my_initialized) { in prepare_wait()
206 node.init(); in prepare_wait()
210 node.reset(); in prepare_wait()
218 my_waitset.add(&node); in prepare_wait()
232 node.wait(); in commit_wait()
234 cancel_wait( node ); in commit_wait()
260 prepare_wait(node); in wait()
262 if (commit_wait(node)) { in wait()
266 prepare_wait(node); in wait()
269 cancel_wait(node); in wait()
[all …]
/oneTBB/include/oneapi/tbb/detail/
H A D_flow_graph_trace_impl.h45 static inline void fgt_alias_port(void *node, void *p, bool visible) { in fgt_alias_port() argument
75 fgt_internal_alias_input_port( node, port, name_index); in alias_input_port()
80 static void alias_port( void *node, PortsTuple &ports ) { in alias_port()
99 static void alias_port( void *node, PortsTuple &ports ) {
133 static void register_port( void *node, PortsTuple &ports ) {
141 static void register_port( void *node, PortsTuple &ports ) {
175 void *addr = const_cast<NodeType *>(node);
190 static inline void fgt_body( void *node, void *body ) {
281 static inline void fgt_async_reserve( void *node, void *graph ) {
285 static inline void fgt_async_commit( void *node, void * /*graph*/) {
[all …]
H A D_flow_graph_node_set_impl.h157 static auto get_impl(NodeType& node, std::true_type) -> decltype(input_port<I>(node)) {
158 return input_port<I>(node);
162 static NodeType& get_impl(NodeType& node, std::false_type) { return node; }
167 static auto& get(NodeType& node)
169 static auto get(NodeType& node) -> decltype(get_impl(node, has_input_ports_type<NodeType>()))
179 static auto internal_get(NodeType& node, std::true_type) -> decltype(output_port<I>(node)) {
184 static NodeType& internal_get(NodeType& node, std::false_type) { return node;}
197 static AsyncNode& get_impl(AsyncNode& node, std::true_type) { return node; }
204 static auto get(NodeType& node) -> decltype(get_impl(node, is_async_node<NodeType>()))
255 make_edges(ns, node);
[all …]
H A D_node_handle.h32 static typename NodeHandleType::node* get_node_ptr( NodeHandleType& nh ) { in get_node_ptr()
37 static NodeHandleType construct( typename NodeHandleType::node* node_ptr ) { in construct()
52 using node = Node;
86 node_handle_base( node* n ) : my_node(n) {} in node_handle_base()
91 … typename allocator_traits_type::template rebind_alloc<node> node_allocator(my_allocator); in internal_destroy()
96 node* get_node_ptr() { return my_node; } in get_node_ptr()
100 node* my_node;
128 node_handle( typename base_type::node* n ) : base_type(n) {} in node_handle()
149 node_handle( typename base_type::node* n ) : base_type(n) {} in node_handle()
H A D_concurrent_skip_list.h104 return node; in create()
114 allocator_traits::destroy(alloc, node); in destroy()
139 __TBB_ASSERT(node == nullptr || node->height() > level, "Broken internal structure"); in atomic_next()
724 return iterator(node); in begin()
729 return iterator(node); in end()
776 return node != nullptr && !my_compare(key, get_key(node)); in found()
1108 delete_node(node); in create_value_node()
1114 return node; in create_value_node()
1129 void delete_node( node_ptr node ) { in delete_node() argument
1133 void delete_value_node( node_ptr node ) { in delete_value_node() argument
[all …]
H A D_concurrent_unordered_base.h915 void destroy_node( node_ptr node ) { in destroy_node() argument
916 if (node->is_dummy()) { in destroy_node()
1184 … for (node_ptr node = prev_node->next(); node != nullptr; prev_node = node, node = node->next()) { in internal_extract() local
1185 if (node == node_to_extract) { in internal_extract()
1323 for (node_ptr node = other.my_head.next(); node != nullptr; node = node->next()) { in internal_copy() local
1325 if (!node->is_dummy()) { in internal_copy()
1327 … new_node = create_node(node->order_key(), static_cast<value_node_ptr>(node)->value()); in internal_copy()
1330 new_node = create_dummy_node(node->order_key()); in internal_copy()
1343 for (node_ptr node = other.my_head.next(); node != nullptr; node = node->next()) { in internal_move() local
1345 if (!node->is_dummy()) { in internal_move()
[all …]
/oneTBB/test/tbb/
H A Dtest_profiling.cpp84 tbb::profiling::set_name(node, "async_node");
91 tbb::flow::broadcast_node<int> node(g);
99 tbb::flow::buffer_node<int> node(g);
100 tbb::profiling::set_name(node, "buffer_node");
162 tbb::profiling::set_name(node, "input_node");
170 tbb::profiling::set_name(node, "join_node");
177 tbb::flow::limiter_node<int> node(g, 1); variable
199 tbb::flow::overwrite_node<int> node(g);
207 tbb::flow::priority_queue_node<int> node(g);
215 tbb::flow::queue_node<int> node(g);
[all …]
H A Dtest_partitioner.h309 if (!node) in push_node()
372 bool has_children(TreeNode *node) { return node->m_left || node->m_right; } in has_children() argument
381 bool has_left_child(TreeNode *node) { return node->m_left != nullptr; } in has_left_child() argument
394 if (node->m_left) in remove_node_recursively()
396 if (node->m_right) in remove_node_recursively()
398 delete node; in remove_node_recursively() local
407 size_t rangeSize = node->m_range_end - node->m_range_begin;
411 if (node->m_left)
425 if (node->m_left == nullptr && node->m_right == nullptr) in fill_leafs_impl()
427 if (node->m_left != nullptr) fill_leafs_impl(node->m_left, leafs); in fill_leafs_impl()
[all …]
/oneTBB/doc/main/tbb_userguide/
H A DFlow_Graph_Buffering_in_Nodes.rst8 to communicate data and to enforce dependencies. If a node passes a
10 the message by that node. As noted in the section on Single-push vs.
13 connected to the node, and whether the message is pushed or pulled.
16 There are times when a node cannot successfully push a message to any
18 of the node. The two possibilities are:
21 - The node stores the message to be forwarded later.
22 - The node discards the message.
26 not desired, the node should be connected to a buffering node that does
31 passed to another node:
40 the node that stored it. If a node is connected using ``make_edge`` the
[all …]
H A DPredefined_Node_Types.rst7 You can define your own node types by inheriting from class graph_node,
9 your graph with the predefined node types already available in
12 detailed description of each node.
25 - A single-output node, with a generic output type.
29 …- A single-input single-output node that broadcasts its output to all successors. Has generic inpu…
33 …- A single-input multi-output node. It has a generic input type and several generic output type…
35 …- A single-input, single-output node that broadcasts each message received to all successors. I…
39 …nput, single-output node. There are several generic input types and the output type is a tuple …
41 …multi-output node. The input type is a tuple of generic types and there is one output port for …
45node that broadcasts its output to all successors. The main input type and output type are of t…
[all …]
H A DNodes.rst7 A node is a class that inherits from oneapi::tbb::flow::graph_node and also
9 both. A node performs some operation, usually on an incoming message and
14 While it is possible to define your own node types by inheriting from
15 graph_node, sender and receiver, it is more typical that predefined node
41 - The graph the node belongs to.
51 function_node. In this example, a node n is constructed that belongs to
53 invocation of the node to occur concurrently. The body is a lambda
71 After the node is constructed in the example above, you can pass
99 body to 2. And likewise, the node will wait for that task to complete
101 try_put do not block until a task is spawned; if a node cannot
[all …]
H A Duse_concurrency_limits.rst7 To control the number of instances of a single node, you can use the
8 concurrency limit on the node. To cause it to reject messages after it
9 reaches its concurrency limit, you construct it as a "rejecting" node.
12 A function node is constructed with one or more template arguments. The
13 third argument controls the buffer policy used by the node, and is by
16 buffers them internally. If the policy is set to rejecting the node will
70 concurrently. The node's concurrency threshold that limits the node to
H A Dcancel_a_graph.rst44 When a graph execution is canceled, any node that has already started to
45 execute will execute to completion, but any node that has not started to
50 You can also get the task_group_context that a node belongs to from
51 within the node body and use it to cancel the execution of the graph it
84 You can get the task_group_context from a node's body even if the graph
H A DEdges.rst12 include a second node that squares the value it receives before printing
13 it and then connect that to the first node with an edge.
41 an edge from ``n`` to ``m``. The node ``n`` is created with unlimited concurrency,
45 be automatically passed to node ``m`` by the runtime library.
H A Dalways_use_wait_for_all.rst32 In the function above, the graph g and its node f are destroyed at the
35 successors connected to its node, but by then both the graph and the
36 node have been deleted out from underneath it. Placing a
38 destruction of the graph and node.
H A Destimate_flow_graph_performance.rst19 A critical path is the most time consuming path from a node with no
20 predecessors to a node with no successors. In a dependence graph, the
45 scheduling when estimating the time it takes for a node to execute
47 granularity of tasks therefore also apply to node bodies as well. If
/oneTBB/test/common/
H A Dtest_follows_and_precedes_api.h50 NodeType& node,
59 NodeType& node,
64 tbb::flow::make_edge(node, buffer);
76 NodeType& node,
81 tbb::flow::make_edge(node, buffer);
93 NodeType& node,
98 node.clear();
108 NodeType& node,
146 NodeType& node,
162 node.try_put(messages[0]);
[all …]
H A Dnode_handling_support.h32 bool compare_handle_getters( const Handle& node, const std::pair<typename Handle::key_type, typenam… in compare_handle_getters() argument
33 return node.key() == value.first && node.mapped() == value.second; in compare_handle_getters()
37 bool compare_handle_getters( const Handle& node, const typename Handle::value_type& value ) { in compare_handle_getters() argument
38 return node.value() == value; in compare_handle_getters()
42 void set_node_handle_value( Handle& node, const std::pair<typename Handle::key_type, typename Handl… in set_node_handle_value() argument
43 node.key() = value.first; in set_node_handle_value()
44 node.mapped() = value.second; in set_node_handle_value()
48 void set_node_handle_value( Handle& node, const typename Handle::value_type& value ) { in set_node_handle_value() argument
49 node.value() = value; in set_node_handle_value()
/oneTBB/test/conformance/
H A Dconformance_sequencer_node.cpp101 oneapi::tbb::flow::sequencer_node<int> node(g, sequencer);
103 node.try_put(1);
105 …CHECK_MESSAGE((node.try_put(1) == false), "sequencer_node must rejects duplicate sequencer numbers…
115 oneapi::tbb::flow::sequencer_node<int> node(g, sequencer);
117 node.try_put(1);
118 node.try_put(0);
119 node.try_put(1);
123 CHECK_MESSAGE((node.try_get(tmp) == true), "Getting from sequencer should succeed");
127 CHECK_MESSAGE((node.try_get(tmp) == true), "Getting from sequencer should succeed");
131 CHECK_MESSAGE((node.try_get(tmp) == false), "Getting from sequencer should not succeed");
/oneTBB/doc/main/reference/
H A Dfollows_and_precedes_functions.rst11 only be used while constructing the node.
20 The ``follows`` helper function specifies that the node being constructed is
23 The ``precedes`` helper function specifies that the node being constructed is
27 passed as the first argument to the constructor of the node. The graph argument for the
28 node being constructed is obtained either from the specified node set or the sequence of nodes pass…
55 /*unspecified*/ follows( NodeType& node, NodeTypes&... nodes );
61 /*unspecified*/ precedes( NodeType& node, NodeTypes&... nodes );
H A Dmake_edges_function.rst16 The ``make_edges`` function template creates edges between a single node
17 and each node in a set of nodes.
19 There are two ways to connect nodes in a set and a single node using
43 void make_edges(node_set<Node, Nodes...>& set, NodeType& node);
46 void make_edges(NodeType& node, node_set<Node, Nodes...>& set);
/oneTBB/examples/concurrent_priority_queue/shortpath/
H A DREADME.md4 It is parameterized by `N`, a number of nodes, and a start and end node in `[0..N)`. A graph is gen…
6 …set when the `g` estimate (shortest path from start to the node) is improved, even if the node has…
12 The generated graph follows a pattern in which the closer two pairs of node ids are together, the f…
35 * `start` - node to start path at.
36 * `end` - node to end path at.
/oneTBB/include/oneapi/tbb/
H A Dconcurrent_hash_map.h374 using node = typename Container::node; variable
483 node* my_node;
631 class node; in __TBB_requires() local
642 class node : public node_base { in __TBB_requires()
644 node() {} in __TBB_requires()
645 ~node() {} in __TBB_requires()
698 node *n = static_cast<node*>( b->node_list.load(std::memory_order_relaxed) ); in __TBB_requires()
813 node *my_node; in __TBB_requires()
1281 node *n; in __TBB_requires()
1496 node *n = static_cast<node*>( src->node_list.load(std::memory_order_relaxed) ); in __TBB_requires()
[all …]
H A Dpartitioner.h116 struct node { struct
117 node* my_parent{};
120 node() = default;
121 node(node* parent, int ref_count) : in node() argument
127 struct wait_node : node {
128 wait_node() : node{ nullptr, 1 } {} in wait_node()
133 struct tree_node : public node {
137 tree_node(node* parent, int ref_count, small_object_allocator& alloc) in tree_node()
138 : node{parent, ref_count} in tree_node()
161 void fold_tree(node* n, const execution_data& ed) { in fold_tree()
[all …]

123