cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Timer left at 0 and firing over and over. Regression after 7.32.0

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Thu, 20 Mar 2014 23:40:00 +0100 (CET)

On Thu, 20 Mar 2014, Damian Lezama wrote:

> I have an event oriented prototype that uses libuv and curl multi for
> concurrent downloads. It is working fine with 7.32.0 but when I try 7.35.0
> the timer value is left at 0 and my program starts spinning.

Can you clarify what this means? The timer value "is left at 0" ? What does it
mean that the value is left? libcurl tells you a timeout, you tell it when it
has expired.

> When this happens, on each timer expiration I call into
> curl_multi_socket_action and nothing happens, I don't get the timer callback
> or any activity.

I'm having a hard time understanding how this can happen on every timer
expiration because then the logic must be completely broken and this is not a
bug report I can recall we've seen before.

I can't really tell you exactly what's happening here, but we probably need to
instrument the libcurl internals and or do some debugger single-stepping to
figure this out.

If you fire off a timeout to libcurl _before_ libcurl thinks it should run,
libcurl should call the timer callback again with a new expire time.

If you fire off the timeout when libcurl thinks it has timeout work to do,
then it should just process the necessary handles/sockets, call the suitable
callbacks and go on with its job.

Any chance you can dumb down the code as much as possible in order to get a
recipe that is as simple as possible for me/us to try?

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2014-03-20