| 29 | : nullptr) {} |
| 30 | |
| 31 | Status RTasks::Finish() { |
| 32 | Status status = Status::OK(); |
| 33 | |
| 34 | // run the delayed tasks now |
| 35 | for (auto& task : delayed_serial_tasks_) { |
| 36 | status &= std::move(task)(); |
| 37 | if (!status.ok()) { |
| 38 | stop_source_.RequestStop(); |
| 39 | break; |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | // then wait for the parallel tasks to finish |
| 44 | if (use_threads_) { |
| 45 | status &= parallel_tasks_->Finish(); |
| 46 | } |
| 47 | |
| 48 | return status; |
| 49 | } |
| 50 | |
| 51 | void RTasks::Append(bool parallel, RTasks::Task&& task) { |
| 52 | if (parallel && use_threads_) { |