On Fri, 11 Jun 2010, [email protected] wrote:

I noticed that the progress callback doesn't get invoked from the WAITDO state.

Ouch. That is a separate bug. Shouldn't be too hard to fix. I'll take that issue. I guess one way to adress it is like the patch below, although it might be calling the function a little too often...

I'm assuming that it would be best to have the timeout monitoring occur in the same thread of control that's calling Curl_multi_perform()?

Yes I believe so, as then it can easily just curl_multi_remove_handle() when the time is up.

My first suggested progress callback patch:

diff --git a/lib/multi.c b/lib/multi.c
index 9abf339..f210dcf 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1528,6 +1528,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,

         multistate(easy, CURLM_STATE_COMPLETED);
       }
+      else
+        Curl_pgrsUpdate(easy->easy_conn);
     }
   } while(0);
   if((CURLM_STATE_COMPLETED == easy->state) && !easy->msg) {


--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to