Skip to content

Commit fcbd9df

Browse files
author
Tsung-Wei Huang
committed
updated simple
1 parent 17ba66d commit fcbd9df

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

examples/simple.cpp

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
// A simple example to capture the following task dependencies.
22
//
3-
// TaskA---->TaskB---->TaskD
4-
// TaskA---->TaskC---->TaskD
5-
3+
// +---+
4+
// +---->| B |-----+
5+
// | +---+ |
6+
// +---+ +-v-+
7+
// | A | | D |
8+
// +---+ +-^-+
9+
// | +---+ |
10+
// +---->| C |-----+
11+
// +---+
12+
//
613
#include <taskflow/taskflow.hpp> // the only include you need
714

815
int main(){
916

1017
tf::Executor executor;
1118
tf::Taskflow taskflow("simple");
1219

13-
auto A = taskflow.emplace([]() { std::cout << "TaskA\n"; });
14-
auto B = taskflow.emplace([]() { std::cout << "TaskB\n"; });
15-
auto C = taskflow.emplace([]() { std::cout << "TaskC\n"; });
16-
auto D = taskflow.emplace([]() { std::cout << "TaskD\n"; });
20+
auto [A, B, C, D] = taskflow.emplace(
21+
[]() { std::cout << "TaskA\n"; },
22+
[]() { std::cout << "TaskB\n"; },
23+
[]() { std::cout << "TaskC\n"; },
24+
[]() { std::cout << "TaskD\n"; }
25+
);
1726

18-
A.precede(B); // B runs after A // +---+
19-
A.precede(C); // C runs after A // +---->| B |-----+
20-
B.precede(D); // D runs after B // | +---+ |
21-
C.precede(D); // D runs after C // +---+ +-v-+
22-
// | A | | D |
23-
// +---+ +-^-+
24-
executor.run(taskflow).wait(); // | +---+ |
25-
// +---->| C |-----+
26-
// +---+
27+
A.precede(B, C); // A runs before B and C
28+
D.succeed(B, C); // D runs after B and C
29+
30+
executor.run(taskflow).wait();
2731

2832
return 0;
2933
}

0 commit comments

Comments
 (0)