File: task_enqueuing_flow_graph.htm

package info (click to toggle)
tbb 4.2~20140122-5
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 21,492 kB
  • ctags: 21,278
  • sloc: cpp: 92,813; ansic: 9,775; asm: 1,070; makefile: 1,057; sh: 351; java: 226; objc: 98; pascal: 71; xml: 41
file content (63 lines) | stat: -rwxr-xr-x 2,908 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<html xmlns:MSHelp="http://www.microsoft.com/MSHelp/" lang="en-us" xml:lang="en-us"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<meta name="DC.Type" content="topic">
<meta name="DC.Title" content="Task Enqueuing Flow Graph">
<meta name="DC.Relation" scheme="URI" content="../../../reference/appendices/compatibility_features.htm">
<meta name="DC.Relation" scheme="URI" content="../../task_scheduler/scheduling_algorithm.htm">
<meta name="DC.Format" content="XHTML">
<meta name="DC.Identifier" content="task_enqueuing_flow_graph">
<meta name="DC.Language" content="en-US">
<link rel="stylesheet" type="text/css" href="../../../intel_css_styles.css">
<title>Task Enqueuing Flow Graph</title>
</head>
<body id="task_enqueuing_flow_graph">
 <!-- ==============(Start:NavScript)================= -->
 <script src="..\..\..\NavScript.js" language="JavaScript1.2" type="text/javascript"></script>
 <script language="JavaScript1.2" type="text/javascript">WriteNavLink(3);</script>
 <!-- ==============(End:NavScript)================= -->
<a name="task_enqueuing_flow_graph"><!-- --></a>


  <h1 class="topictitle1">Task Enqueuing Flow Graph</h1>

  <div>

<p>
The implementation of the flow graph that enqueues its tasks has been deprecated.  There are limitations on the
nesting of calls to <span class="keyword">wait_for_all</span> on enqueued tasks.  These limitations restrict the composability
of flow graphs, preventing their use in some interesting cases.  We therefore modified the flow graph to spawn tasks
instead.  See the Scheduling Algorithm section for a discussion of the differences between enqueued and spawned tasks.
</p>


<p>
To use the deprecated implementation that enqueues tasks, the preprocessor symbol <span class="keyword">TBB_DEPRECATED_FLOW_ENQUEUE</span>
must be non-zero.</p>


<p>
If an application relies on the fire-and-forget nature of enqueued tasks, it may still be possible to avoid using 
the deprecated implementation.  This might be done, for example, by enqueueing a task that in turn constructs
and executes a spawning flow graph.  The outer enqueued task will be serviced even if there are no worker threads
available, and any thread created to service it will then also be availble to execute tasks spawned by its flow
graph.
</p>

</div>

  
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong>&nbsp;<a href="../../../reference/appendices/compatibility_features.htm">Compatibility Features</a></div>
</div>
<div class="See Also">
<h2>See Also</h2>
<div class="linklist">
<div><a href="../../task_scheduler/scheduling_algorithm.htm">Scheduling Algorithm
		  </a></div></div>
</div>

</body>
</html>