r378 - in branches/rewrite: . src

Otavio Salvador partial-mirror-devel@lists.alioth.debian.org
Sun, 28 Nov 2004 10:18:55 -0700


Author: otavio
Date: Sun Nov 28 10:18:51 2004
New Revision: 378

Modified:
   branches/rewrite/   (props changed)
   branches/rewrite/src/Download.py
Log:
 r392@nurf:  otavio | 2004-11-28T17:18:26.820191Z
 Fix logic. Now it stops.


Modified: branches/rewrite/src/Download.py
==============================================================================
--- branches/rewrite/src/Download.py	(original)
+++ branches/rewrite/src/Download.py	Sun Nov 28 10:18:51 2004
@@ -104,7 +104,6 @@
 
         self._running = True
         while 1:
-            #pdb.set_trace()
             while 1:
                 try:
                     fetcher = self._free.get_nowait()
@@ -114,7 +113,7 @@
                 try:
                     url, filename = Download.queue.get_nowait()
                 except Empty:
-                    pass # Empty queue. Continue processing the others.
+                    break # Empty queue. Continue processing the others.
 
                 # Get a free fetcher
                 fetcher.setUrl(url)
@@ -126,11 +125,15 @@
             self._multi.select()
             while 1:
                 ret, num_handles = self._multi.perform()
+                print ret, num_handles
+                # If we doesn't have data pending, process the others.
                 if ret != pycurl.E_CALL_MULTI_PERFORM:
-                    break
-                if num_handles == 0:
-                    self._running = False
-                    return
+                    # If we already tranfered all files, stop.
+                    if num_handles == 0:
+                        self._running = False
+                        return
+                    else:
+                        break
 
             # Check for curl objects which have terminated, and add them to the freelist
             while 1: