File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
815int 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}
You can’t perform that action at this time.
0 commit comments