| 351 | } |
| 352 | |
| 353 | void server_response_reader::post_tasks(std::vector<server_task> && tasks, bool front) { |
| 354 | GGML_ASSERT(id_tasks.empty() && "post_tasks() can only be called once per reader"); |
| 355 | id_tasks = server_task::get_list_id(tasks); |
| 356 | states.reserve(tasks.size()); |
| 357 | size_t index = 0; |
| 358 | for (auto & task : tasks) { |
| 359 | task.index = index++; |
| 360 | states.push_back(task.create_state()); |
| 361 | // for child tasks |
| 362 | for (auto & child_task : task.child_tasks) { |
| 363 | child_task.index = index++; |
| 364 | states.push_back(child_task.create_state()); |
| 365 | } |
| 366 | } |
| 367 | GGML_ASSERT(states.size() == id_tasks.size()); |
| 368 | queue_results.add_waiting_task_ids(id_tasks); |
| 369 | queue_tasks.post(std::move(tasks), front); |
| 370 | } |
| 371 | |
| 372 | bool server_response_reader::has_next() const { |
| 373 | return !cancelled && received_count < id_tasks.size(); |
no test coverage detected