| 242 | } |
| 243 | |
| 244 | void server_response::remove_waiting_task_id(int id_task) { |
| 245 | RES_DBG("remove task %d from waiting list. current waiting = %d (before remove)\n", id_task, (int) waiting_task_ids.size()); |
| 246 | |
| 247 | std::unique_lock<std::mutex> lock(mutex_results); |
| 248 | waiting_task_ids.erase(id_task); |
| 249 | // make sure to clean up all pending results |
| 250 | queue_results.erase( |
| 251 | std::remove_if(queue_results.begin(), queue_results.end(), [id_task](const server_task_result_ptr & res) { |
| 252 | return res->id == id_task; |
| 253 | }), |
| 254 | queue_results.end()); |
| 255 | } |
| 256 | |
| 257 | void server_response::remove_waiting_task_ids(const std::unordered_set<int> & id_tasks) { |
| 258 | std::unique_lock<std::mutex> lock(mutex_results); |