| [ Web Proxy ] |
| Viewing: https://raw.githubusercontent.com/ModuleWorks/taskflow/task_isolation/docs/classtf_1_1Subflow.html | [Back] [Original] |
class to construct a subflow graph from the execution of a dynamic task
tf::Subflow is spawned from the execution of a task to dynamically manage a child graph that may depend on runtime variables. You can explicitly join a subflow by calling tf::Subflow::join, respectively. By default, the Taskflow runtime will implicitly join a subflow it is is joinable.
The following example creates a taskflow graph that spawns a subflow from the execution of task B, and the subflow contains three tasks, B1, B2, and B3, where B3 runs after B1 and B2.
// create three static tasks tf::Task A = taskflow.emplace([](){}).name("A"); tf::Task C = taskflow.emplace([](){}).name("C"); tf::Task D = taskflow.emplace([](){}).name("D"); // create a subflow graph (dynamic tasking) tf::Task B = taskflow.emplace([] (tf::Subflow& subflow) { tf::Task B1 = subflow.emplace([](){}).name("B1"); tf::Task B2 = subflow.emplace([](){}).name("B2"); tf::Task B3 = subflow.emplace([](){}).name("B3"); B1.precede(B3); B2.precede(B3); }).name("B"); A.precede(B); // B runs after A A.precede(C); // C runs after A B.precede(D); // D runs after B C.precede(D); // D runs after C
enables the subflow to join its parent task
Performs an immediate action to join the subflow. Once the subflow is joined, it is considered finished and you may not modify the subflow anymore.
taskflow.emplace([](tf::Subflow& sf){ sf.emplace([](){}); sf.join(); // join the subflow of one task });
Only the worker that spawns this subflow can join it.
queries if the subflow is joinable
This member function queries if the subflow is joinable. When a subflow is joined, it becomes not joinable.
taskflow.emplace([](tf::Subflow& sf){ sf.emplace([](){}); std::cout << sf.joinable() << '\n'; // true sf.join(); std::cout << sf.joinable() << '\n'; // false });
specifies whether to keep the subflow after it is joined
| Parameters | |
|---|---|
| flag | true to retain the subflow after it is joined; false to discard it |
By default, the runtime automatically clears a spawned subflow once it is joined. Setting this flag to true allows the application to retain the subflow's structure for post-execution analysis like visualization.
queries if the subflow will be retained after it is joined
| Returns | true if the subflow will be retained after it is joined; false otherwise |
|---|
Search for symbols, directories, files, pages or
modules. You can omit any prefix from the symbol or file path; adding a
: or / suffix lists all members of given symbol or
directory.
Use ↓ / ↑ to navigate through the list, Enter to go. Tab autocompletes common prefix, you can copy a link to the result using L while M produces a Markdown link.
Taskflow handbook is part of the Taskflow project, copyright Dr. Tsung-Wei Huang, 2018–2025.
Generated by Doxygen 1.12.0 and m.css.
| Web Proxy Viewer | New URL | Original Page |