cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[curl:bugs] #1238 progressfunction called too much

From: Daniel Stenberg <bagder_at_users.sf.net>
Date: Thu, 13 Jun 2013 20:35:56 +0000

That's a completely different matter and is in fact by design. We can discuss changing that in some ways, but that's how libcurl has been working for a long time. The problem this bug report is about and what my patch tries to address, is the very high frequency of calls when in fact nothing has changed and it just busy-loops.

---
** [bugs:#1238] progressfunction called too much**
**Status:** open-confirmed
**Labels:** progresscallback rate-limiting 
**Created:** Mon Jun 03, 2013 08:55 PM UTC by Daniel Stenberg
**Last Updated:** Thu Jun 13, 2013 06:36 PM UTC
**Owner:** Daniel Stenberg
(bug reported by Miguel Angel in http://curl.haxx.se/mail/lib-2013-05/0254.html)
I am using pycurl in a small script to download coursera videos, it's working 
fine but the callback i installed to display a progress bar in console it's 
called 22188558 times in 70 seconds of execution, it hangs 1 core of the machine 
all the time. 
given the documentation states should be called "roughly once per second or 
sooner" this seems too much for me, i am using this code to use it, it's python 
but i think it's pretty readable.
    ::: python 
    curl = pycurl.Curl() 
    curl.setopt(curl.URL, url) 
    if rate_limit is not None: 
        curl.setopt(curl.MAX_RECV_SPEED_LARGE, rate_limit) 
    file_store = open(filename, "wb") 
    curl.setopt(curl.WRITEDATA, file_store) 
    curl.setopt(curl.NOPROGRESS, 0) 
    curl.setopt(curl.PROGRESSFUNCTION, curl_progress) 
    curl.setopt(curl.FOLLOWLOCATION, 1) 
    #cookies 
    curl.setopt(curl.COOKIEJAR, cookies_filename) 
    curl.setopt(curl.COOKIEFILE, cookies_filename) 
    try: 
        curl.perform() 
    except: 
        import traceback 
        my_logger.error(u"Error downloading file: %s" % traceback.format_exc()) 
    #cleaning 
    curl.close() 
    file_store.close() 
no matter that i define curl_progress as: 
def curl_progress(dl_total, dl_now, ul_total, ul_now): 
    return 0 
it's called so much times that hangs 1 cpu core anyway. 
---
Sent from sourceforge.net because you indicated interest in <https://sourceforge.net/p/curl/bugs/1238/>
To unsubscribe from further messages, please visit <https://sourceforge.net/auth/subscriptions/>
Received on 2013-06-13

These mail archives are generated by hypermail.

donate! Page updated May 06, 2013.
web site info

File upload with ASP.NET