summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-07 22:41:10 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-07 22:41:10 +0000
commit8c8226266a93b0b01790ad983b8f35259e4a7543 (patch)
tree50d747708d1858e27700a55765730051688929d1
parentc931f1fff92186cbbe78613845270245eba64a37 (diff)
downloadportage-8c8226266a93b0b01790ad983b8f35259e4a7543.tar.gz
portage-8c8226266a93b0b01790ad983b8f35259e4a7543.tar.bz2
portage-8c8226266a93b0b01790ad983b8f35259e4a7543.zip
* Add new CompositeTask._default_final_exit() method and use it as the new
generic task exit callback. * Remove erroneous self.wait() calls inside MergeListItem.start(). svn path=/main/trunk/; revision=10974
-rw-r--r--pym/_emerge/__init__.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 8649912ae..bf4ef3afd 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1594,15 +1594,22 @@ class CompositeTask(AsynchronousTask):
Assumes that task is the final task of this composite task.
Calls _default_exit() and sets self.returncode to the task's
returncode and sets self._current_task to None.
-
- Subclasses can use this as a generic final task exit callback.
-
"""
self._default_exit(task)
self._current_task = None
self.returncode = task.returncode
return self.returncode
+ def _default_final_exit(self, task):
+ """
+ This calls _final_exit() and then wait().
+
+ Subclasses can use this as a generic final task exit callback.
+
+ """
+ self._final_exit(task)
+ return self.wait()
+
def _start_task(self, task, exit_handler):
"""
Register exit handler for the given task, set it
@@ -2155,7 +2162,7 @@ class EbuildExecuter(CompositeTask):
pkg=pkg, phase=phase, scheduler=scheduler,
settings=settings, tree=tree))
- self._start_task(ebuild_phases, self._final_exit)
+ self._start_task(ebuild_phases, self._default_final_exit)
class EbuildPhase(SubProcess):
@@ -2872,7 +2879,6 @@ class MergeListItem(CompositeTask):
self._install_task = build
self._start_task(build, self._ebuild_exit)
- self.wait()
return
elif pkg.type_name == "binary":
@@ -2884,8 +2890,7 @@ class MergeListItem(CompositeTask):
scheduler=scheduler, world_atom=world_atom)
self._install_task = binpkg
- self._start_task(binpkg, self._final_exit)
- self.wait()
+ self._start_task(binpkg, self._default_final_exit)
return
def _ebuild_exit(self, build):