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: Tue, 11 Jun 2013 06:21:48 +0000

Thanks Nach, but that patch is not actually fixing the problem only the symptom.

That check has always been like that and it is not the correct way of rate limiting the progress callback. The problem we need to solve can be phrased: Why is the progress-checking function called that often while rate-limited compared to when not rate-limited?

---
** [bugs:#1238] progressfunction called too much**
**Status:** open
**Labels:** progresscallback rate-limiting 
**Created:** Mon Jun 03, 2013 08:55 PM UTC by Daniel Stenberg
**Last Updated:** Tue Jun 11, 2013 06:17 AM UTC
**Owner:** nobody
(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-11

These mail archives are generated by hypermail.

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

File upload with ASP.NET