[PATCH] Start meters immediately. BZ 831904

View: New views
2 Messages — Rating Filter:   Alert me  

[PATCH] Start meters immediately. BZ 831904

by Zdenek Pavlas-2 :: Rate this Message:

| View Threaded | Show Only this Message

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@...
http://lists.baseurl.org/mailman/listinfo/yum-devel

Re: [PATCH] Start meters immediately. BZ 831904

by James Antill-9 :: Rate this Message:

| View Threaded | Show Only this Message

On Thu, 2012-06-14 at 09:09 +0200, Zdeněk Pavlas wrote:
> 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.

 I ACKd the previous one, no need to re-email for minor changes ... I
trust you (and can't tell the difference ;).
 ACK.

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