URLgrabber has traditionally delayed starting of meters to first
update, and .update() && .end() need started meters.  Instead of
having to check this every time, start meters immediately.

This simplifies the update path.  Removed one more IF because
downloader sends update messages only if progress_obj was set.
---
 urlgrabber/grabber.py |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index 073d41d..4af663f 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -2047,12 +2047,7 @@ class _ExternalDownloader:
             line = line.split(' ', 5)
             _id, size = map(int, line[:2])
             if len(line) == 2:
-                opts = self.running[_id]
-                m = opts.progress_obj
-                if m:
-                    if not m.last_update_time:
-                        m.start(text = opts.text)
-                    m.update(size)
+                self.running[_id].progress_obj.update(size)
                 continue
             # job done
             opts = self.running.pop(_id)
@@ -2142,7 +2137,11 @@ def parallel_wait(meter = 'text'):
         key, limit = opts.async
         host_con[key] = host_con.get(key, 0) + 1
         opts.tries = tries
-        opts.progress_obj = meter and meter.newMeter()
+        if meter:
+            opts.progress_obj = meter.newMeter()
+            opts.progress_obj.start(text=opts.text, 
basename=os.path.basename(opts.filename))
+        else:
+            opts.progress_obj = None
         if DEBUG: DEBUG.info('attempt %i/%s: %s', opts.tries, opts.retry, 
opts.url)
         dl.start(opts)
 
@@ -2152,7 +2151,6 @@ def parallel_wait(meter = 'text'):
             host_con[key] -= 1
             if meter:
                 m = opts.progress_obj
-                m.basename = os.path.basename(opts.filename)
                 if ug_err:
                     m.failure(ug_err.args[1])
                 else:
-- 
1.7.4.4

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to