| 193 | |
| 194 | template <typename F> |
| 195 | inline void TaskControl::for_each_task_group(F const& f) { |
| 196 | if (_init.load(butil::memory_order_acquire) == false) { |
| 197 | return; |
| 198 | } |
| 199 | for (size_t i = 0; i < _tagged_groups.size(); ++i) { |
| 200 | auto ngroup = tag_ngroup(i).load(butil::memory_order_relaxed); |
| 201 | auto& groups = tag_group(i); |
| 202 | for (size_t j = 0; j < ngroup; ++j) { |
| 203 | f(groups[j]); |
| 204 | } |
| 205 | } |
| 206 | } |
| 207 | |
| 208 | } // namespace bthread |
| 209 |