summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-25 00:12:52 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-25 00:12:52 +0000
commitff490f6e06d4f30633c7f7e6ab1e82e15ea1292e (patch)
tree40e574727d461777229c6859d7f0ea3cc28389b4
parent0e7f2a581a6866b32b313c5b9e478310b72e249e (diff)
downloadportage-ff490f6e06d4f30633c7f7e6ab1e82e15ea1292e.tar.gz
portage-ff490f6e06d4f30633c7f7e6ab1e82e15ea1292e.tar.bz2
portage-ff490f6e06d4f30633c7f7e6ab1e82e15ea1292e.zip
Cancel prefetchers if they're the only reason the main poll loop is still
running. svn path=/main/trunk/; revision=11185
-rw-r--r--pym/_emerge/__init__.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index fafc59f94..2e63e6a9e 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -9544,6 +9544,13 @@ class Scheduler(PollScheduler):
remaining, state_change = self._schedule_tasks_imp()
self._task_queues.merge.schedule()
self._status_display.display()
+
+ # Cancel prefetchers if they're the only reason
+ # the main poll loop is still running.
+ if self._failed_pkgs and \
+ not (self._jobs or self._task_queues.merge):
+ self._task_queues.fetch.clear()
+
return remaining
def _schedule_tasks_imp(self):