Я использую API CURL Multi в C++.
На данный момент я закрываю количество обработчиков, которые я даю им в 5, так что я должен ждать, пока они все не будут выполнены, пока я не смогу предоставить еще 5 обработчиков.
Я хочу, чтобы иметь возможность обнаруживать, когда обработчик завершил, обрабатывать данные, а затем сгенерировать следующий обработчик для ввода нового пространства.
Можно ли передавать обработчики в Multi API во время работы?
Можно ли передавать обработчики в Multi API во время работы?
Да.
Как только curl_multi_info_read
вернет сообщение с флагом CURLMSG_DONE
вы можете:
msg->easy_handle
curl_multi_remove_handle
Затем вы можете добавить еще один дескриптор в свой curl_multi_add_handle
с curl_multi_add_handle
.
В большинстве случаев лучше всего выполнить curl_easy_reset
на простом дескрипторе, прежде чем добавлять его снова:
curl_multi_remove_handle(multi_handle, easy_handle);
curl_easy_reset(easy_handle);
// here re-configure your handle for the next transfer (CURLOPT_URL, etc)
// ...
curl_multi_add_handle(multi_handle, easy_handle);