| 1619 | {} |
| 1620 | |
| 1621 | void start() & noexcept |
| 1622 | { |
| 1623 | std::unique_lock lock{parent_->start_mutex_}; |
| 1624 | if (!parent_->has_started_) |
| 1625 | { |
| 1626 | parent_->tasks_.push_back(static_cast<task_base*>(this)); |
| 1627 | parent_->tasks_size_ += 1; |
| 1628 | } |
| 1629 | else |
| 1630 | { |
| 1631 | lock.unlock(); |
| 1632 | parent_->pool_.enqueue(static_cast<task_base*>(this)); |
| 1633 | } |
| 1634 | } |
| 1635 | }; |
| 1636 | |
| 1637 | template <class Range> |