Skip to content

Commit ea1c8a5

Browse files
updated simple example
1 parent bf8ae4e commit ea1c8a5

10 files changed

+21
-12
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ int main(){
106106
B.precede(D); // B runs before D // | +---+ |
107107
C.precede(D); // C runs before D // +---->| C |-----+
108108
// +---+
109-
executor.run(taskflow);
109+
executor.run(taskflow).wait();
110110

111111
return 0;
112112
}

docs/classtf_1_1WorkStealingQueue-members.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#ab5fe261361a29226f52e6a5eb6351d38">size</a>() const noexcept</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
106106
<tr><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#a6b63dca550a2f576b92f05bdc2e03a74">steal</a>()</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
107107
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#a22aac5bd13c0f1120ddfe8289846fd1d">unsync_pop</a>()</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
108-
<tr><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#a0c790ba6a203092fa8f15297dcb5b1d6">WorkStealingQueue</a>(int64_t capacity=1024)</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
108+
<tr><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#a0c790ba6a203092fa8f15297dcb5b1d6">WorkStealingQueue</a>(int64_t capacity=1024)</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
109109
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html#acb22a49430fd235aa2ae4770d1cd662b">~WorkStealingQueue</a>()</td><td class="entry"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
110110
</table></div><!-- contents -->
111111
</div><!-- doc-content -->

docs/classtf_1_1WorkStealingQueue.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@ <h2 class="memtitle"><span class="permalink"><a href="#a0c790ba6a203092fa8f15297
161161
<div class="memproto">
162162
<div class="memtemplate">
163163
template&lt;typename T &gt; </div>
164+
<table class="mlabels">
165+
<tr>
166+
<td class="mlabels-left">
164167
<table class="memname">
165168
<tr>
166169
<td class="memname"><a class="el" href="classtf_1_1WorkStealingQueue.html">tf::WorkStealingQueue</a>&lt; T &gt;::<a class="el" href="classtf_1_1WorkStealingQueue.html">WorkStealingQueue</a> </td>
@@ -170,6 +173,11 @@ <h2 class="memtitle"><span class="permalink"><a href="#a0c790ba6a203092fa8f15297
170173
<td></td>
171174
</tr>
172175
</table>
176+
</td>
177+
<td class="mlabels-right">
178+
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
179+
</tr>
180+
</table>
173181
</div><div class="memdoc">
174182

175183
<p>constructs the queue with a given capacity </p>

docs/core_2taskflow_8hpp_source.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/executor_8hpp_source.html

Lines changed: 5 additions & 4 deletions
Large diffs are not rendered by default.

docs/flow__builder_8hpp_source.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ <h1><a class="anchor" id="HowToInstallCppTaskflow"></a>
115115
<div class="fragment"><div class="line">~$ git clone https://github.com/cpp-taskflow/cpp-taskflow.git</div><div class="line">~$ cd cpp-taskflow/</div><div class="line">~$ cp -r taskflow myproject/include/</div></div><!-- fragment --><h1><a class="anchor" id="ASimpleFirstProgram"></a>
116116
A Simple First Program</h1>
117117
<p>Here is a rather simple program to get you started.</p>
118-
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;taskflow/taskflow.hpp&gt;</span> <span class="comment">// Cpp-Taskflow is header-only</span></div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(){</div><div class="line"> </div><div class="line"> <a class="code" href="classtf_1_1Executor.html">tf::Executor</a> executor;</div><div class="line"> <a class="code" href="classtf_1_1Taskflow.html">tf::Taskflow</a> taskflow;</div><div class="line"></div><div class="line"> <span class="keyword">auto</span> [A, B, C, D] = taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#a4d52a7fe2814b264846a2085e931652c">emplace</a>(</div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskA\n&quot;</span>; }, <span class="comment">// task dependency graph</span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskB\n&quot;</span>; }, <span class="comment">// </span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskC\n&quot;</span>; }, <span class="comment">// +---+ </span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskD\n&quot;</span>; } <span class="comment">// +----&gt;| B |-----+ </span></div><div class="line"> ); <span class="comment">// | +---+ |</span></div><div class="line"> <span class="comment">// +---+ +-v-+ </span></div><div class="line"> A.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(B); <span class="comment">// A runs before B // | A | | D | </span></div><div class="line"> A.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(C); <span class="comment">// A runs before C // +---+ +-^-+ </span></div><div class="line"> B.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(D); <span class="comment">// B runs before D // | +---+ | </span></div><div class="line"> C.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(D); <span class="comment">// C runs before D // +----&gt;| C |-----+ </span></div><div class="line"> <span class="comment">// +---+ </span></div><div class="line"> executor.<a class="code" href="classtf_1_1Executor.html#a81f35d5b0a20ac0646447eb80d97c0aa">run</a>(taskflow);</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --><p>The program creates four tasks A, B, C, and D. The dependency constraints force A to run before B and C, and D to run after B and C. The maximum concurrency is this example is two, where B and C can run at the same time.</p>
118+
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;taskflow/taskflow.hpp&gt;</span> <span class="comment">// Cpp-Taskflow is header-only</span></div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(){</div><div class="line"> </div><div class="line"> <a class="code" href="classtf_1_1Executor.html">tf::Executor</a> executor;</div><div class="line"> <a class="code" href="classtf_1_1Taskflow.html">tf::Taskflow</a> taskflow;</div><div class="line"></div><div class="line"> <span class="keyword">auto</span> [A, B, C, D] = taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#a4d52a7fe2814b264846a2085e931652c">emplace</a>(</div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskA\n&quot;</span>; }, <span class="comment">// task dependency graph</span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskB\n&quot;</span>; }, <span class="comment">// </span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskC\n&quot;</span>; }, <span class="comment">// +---+ </span></div><div class="line"> [] () { <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/doxygen/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;TaskD\n&quot;</span>; } <span class="comment">// +----&gt;| B |-----+ </span></div><div class="line"> ); <span class="comment">// | +---+ |</span></div><div class="line"> <span class="comment">// +---+ +-v-+ </span></div><div class="line"> A.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(B); <span class="comment">// A runs before B // | A | | D | </span></div><div class="line"> A.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(C); <span class="comment">// A runs before C // +---+ +-^-+ </span></div><div class="line"> B.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(D); <span class="comment">// B runs before D // | +---+ | </span></div><div class="line"> C.<a class="code" href="classtf_1_1Task.html#a8c78c453295a553c1c016e4062da8588">precede</a>(D); <span class="comment">// C runs before D // +----&gt;| C |-----+ </span></div><div class="line"> <span class="comment">// +---+ </span></div><div class="line"> executor.<a class="code" href="classtf_1_1Executor.html#a81f35d5b0a20ac0646447eb80d97c0aa">run</a>(taskflow).wait();</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --><p>The program creates four tasks A, B, C, and D. The dependency constraints force A to run before B and C, and D to run after B and C. The maximum concurrency is this example is two, where B and C can run at the same time.</p>
119119
<h1><a class="anchor" id="CompileAndRunYourFirstProgram"></a>
120120
Compile and Run Your First Program</h1>
121121
<p>Cpp-Taskflow is written in C++17 and is built on top of C++ standardized threading libraries. To compile the above program, you need to tell the compiler where to find the Cpp-Taskflow header files. For example, with gcc you need the <code>-I</code> option.</p>

docs/spmc__queue_8hpp_source.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

doxygen/QuickStart.dox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ int main(){
5757
B.precede(D); // B runs before D // | +---+ |
5858
C.precede(D); // C runs before D // +---->| C |-----+
5959
// +---+
60-
executor.run(taskflow);
60+
executor.run(taskflow).wait();
6161

6262
return 0;
6363
}

example/simple.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ int main(){
2222
B.precede(D); // D runs after B // +---->| C |-----+
2323
C.precede(D); // D runs after C // +---+
2424

25-
executor.run(taskflow).get();
25+
executor.run(taskflow).wait();
2626

2727
return 0;
2828
}

0 commit comments

Comments
 (0)