[Yum-devel] [PATCH] Start meters immediately. BZ 831904
Zdeněk Pavlas
zpavlas at redhat.com
Thu Jun 14 07:09:19 UTC 2012
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
More information about the Yum-devel
mailing list