diff options
Diffstat (limited to 'pym/_emerge/MetadataRegen.py')
-rw-r--r-- | pym/_emerge/MetadataRegen.py | 9 |
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 |