8#ifndef SYMBIAN_CONCURRENCY_TASK_GROUP_H_
9#define SYMBIAN_CONCURRENCY_TASK_GROUP_H_
33 if (closed_ || !
child.valid()) {
36 children_.push_back(std::move(
child));
45 for (
const auto&
child : children_) {
58 auto joined =
JoinAll(std::move(children_));
61 [](
const absl::StatusOr<std::vector<absl::StatusOr<Unit>>>&
all)
62 -> absl::StatusOr<Unit> {
68 return child.status();
77 std::vector<Task> children_;
Definition bounded_channel.h:38
bool Cancel() const
Definition future.h:146
Definition task_group.h:18
~TaskGroup()
Definition task_group.h:24
bool Add(Task child)
Definition task_group.h:32
Task Finish()
Definition task_group.h:53
void Cancel() const
Definition task_group.h:40
TaskGroup(const TaskGroup &)=delete
TaskGroup & operator=(const TaskGroup &)=delete
Definition bounded_channel.h:32
Future< std::vector< absl::StatusOr< T > > > JoinAll(std::vector< Future< T > > inputs)
Definition parallel.h:24
auto Then(const Future< T > &future, Fn transform) -> Future< typename std::invoke_result_t< Fn, const absl::StatusOr< T > & >::value_type >
Definition future.h:281