2013-10-08 35 views
0

我使用捲曲多API在C++中不斷提供新的處理程序。多捲曲C++時準備

目前I上限處理我給它5的數量,使我不得不等待,直到他們完成所有的工作,直到我能提供另外5個處理器。

我希望能夠當一個處理器已經完成檢測,處理數據,然後生成一個處理程序把新的空間。

是否有可能,而它正在運行的處理程序傳遞給多API?

回答

1

在處理程序運行時是否可以將處理程序傳遞給Multi API?

是。

只要curl_multi_info_read返回消息CURLMSG_DONE標誌,您可以:

  1. 獲取相應的方便手柄通過msg->easy_handle
  2. 檢查轉移是確定,你想要做什麼用的響應,
  3. curl_multi_remove_handle刪除這個簡單的句柄

然後你可以添加另一個句柄到你的multi h與curl_multi_add_handle andle。

大部分的時間best way to proceed是重新加入之前就易手柄進行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);