don't delete from incoming queue while iterating, but after. SF #1223920

git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@2671 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2005-06-20 09:49:27 +00:00
parent 0dddb08557
commit 990d548424

View file

@ -88,18 +88,24 @@ class Cache (object):
return it. If no such url is available return None. The
url might be already cached.
"""
res = None
to_delete = None
for i, url_data in enumerate(self.incoming):
key = url_data.cache_url_key
if key in self.checked:
del self.incoming[i]
to_delete = i
# url is cached and can be logged
url_data.copy_from_cache(self.checked[key])
return url_data
res = url_data
break
elif key not in self.in_progress:
del self.incoming[i]
to_delete = i
self.in_progress[key] = url_data
return url_data
return None
res = url_data
break
if to_delete is not None:
del self.incoming[i]
return res
def incoming_len (self):
"""