summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/MetadataRegen.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/MetadataRegen.py')
-rw-r--r--pym/_emerge/MetadataRegen.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/pym/_emerge/MetadataRegen.py b/pym/_emerge/MetadataRegen.py
index 07fd397dd..1ebc53268 100644
--- a/pym/_emerge/MetadataRegen.py
+++ b/pym/_emerge/MetadataRegen.py
@@ -33,6 +33,7 @@ class MetadataRegen(PollScheduler):
self.returncode = os.EX_OK
self._error_count = 0
self._running_tasks = set()
+ self._remaining_tasks = True
def _terminate_tasks(self):
while self._running_tasks:
@@ -87,11 +88,12 @@ class MetadataRegen(PollScheduler):
from portage.cache.cache_errors import CacheError
dead_nodes = {}
- while self._schedule():
- self.sched_iface.run()
+ self._schedule()
+ while self._remaining_tasks and not self._terminated_tasks:
+ self.sched_iface.iteration()
while self._jobs:
- self.sched_iface.run()
+ self.sched_iface.iteration()
if self._terminated_tasks:
self.returncode = 1
@@ -151,6 +153,7 @@ class MetadataRegen(PollScheduler):
try:
metadata_process = next(self._process_iter)
except StopIteration:
+ self._remaining_tasks = False
return False
self._jobs += 1