summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/MetadataRegen.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-03-10 22:02:19 -0800
committerZac Medico <zmedico@gentoo.org>2011-03-10 22:02:19 -0800
commit9411ac7406c6e775998bf6055ca8f022acce9e25 (patch)
tree3f3ce2da2f612a389d8855ce3f50bb274d4b5ecb /pym/_emerge/MetadataRegen.py
parent33946e6594e16d1c8ff493cf71b8587878ec7b29 (diff)
downloadportage-9411ac7406c6e775998bf6055ca8f022acce9e25.tar.gz
portage-9411ac7406c6e775998bf6055ca8f022acce9e25.tar.bz2
portage-9411ac7406c6e775998bf6055ca8f022acce9e25.zip
PollScheduler: tweek termination logic
* PollScheduler and all subclasses now use the _terminated_tasks variable to check whether or not _terminate_tasks() has been called, and behave appropriately in that case. * The _schedule_tasks() method now has documentation about the relationship with _terminate_tasks() and _terminated_tasks.
Diffstat (limited to 'pym/_emerge/MetadataRegen.py')
-rw-r--r--pym/_emerge/MetadataRegen.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/pym/_emerge/MetadataRegen.py b/pym/_emerge/MetadataRegen.py
index 45c4f4d29..810317533 100644
--- a/pym/_emerge/MetadataRegen.py
+++ b/pym/_emerge/MetadataRegen.py
@@ -44,7 +44,7 @@ class MetadataRegen(PollScheduler):
portage.writemsg_stdout("Regenerating cache entries...\n")
every_cp.sort(reverse=True)
try:
- while not self._terminated.is_set():
+ while not self._terminated_tasks:
yield every_cp.pop()
except IndexError:
pass
@@ -56,13 +56,13 @@ class MetadataRegen(PollScheduler):
consumer = self._consumer
for cp in self._cp_iter:
- if self._terminated.is_set():
+ if self._terminated_tasks:
break
cp_set.add(cp)
portage.writemsg_stdout("Processing %s\n" % cp)
cpv_list = portdb.cp_list(cp)
for cpv in cpv_list:
- if self._terminated.is_set():
+ if self._terminated_tasks:
break
valid_pkgs.add(cpv)
ebuild_path, repo_path = portdb.findname2(cpv)
@@ -94,7 +94,7 @@ class MetadataRegen(PollScheduler):
while self._jobs:
self._poll_loop()
- if self._terminated.is_set():
+ if self._terminated_tasks:
self.returncode = 1
return
@@ -145,9 +145,10 @@ class MetadataRegen(PollScheduler):
@returns: True if there may be remaining tasks to schedule,
False otherwise.
"""
+ if self._terminated_tasks:
+ return False
+
while self._can_add_job():
- if self._terminated.is_set():
- return False
try:
metadata_process = next(self._process_iter)
except StopIteration:
@@ -167,7 +168,7 @@ class MetadataRegen(PollScheduler):
self.returncode = 1
self._error_count += 1
self._valid_pkgs.discard(metadata_process.cpv)
- if not self._terminated.is_set():
+ if not self._terminated_tasks:
portage.writemsg("Error processing %s, continuing...\n" % \
(metadata_process.cpv,), noiselevel=-1)