summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-07 11:45:27 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-07 11:45:27 +0000
commit828bb49ecd6ca083a645bb44a0b445d742e622b6 (patch)
tree443fcc9f2d0a74c82b36c115d95239258d1fd332
parentc1af11a910ade3b9222f873510562cf3332a0b5a (diff)
downloadportage-828bb49ecd6ca083a645bb44a0b445d742e622b6.tar.gz
portage-828bb49ecd6ca083a645bb44a0b445d742e622b6.tar.bz2
portage-828bb49ecd6ca083a645bb44a0b445d742e622b6.zip
Make SubProcess._wait() call scheduler.schedule(self.reg_id) so it's
encapsulated and callers don't have to know about it. svn path=/main/trunk/; revision=10970
-rw-r--r--pym/_emerge/__init__.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 0037f988d..4c63a6379 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1560,8 +1560,6 @@ class CompositeTask(AsynchronousTask):
task = self._current_task
if task is None:
break
- if hasattr(task, "reg_id"):
- self.scheduler.schedule(task.reg_id)
task.wait()
return self.returncode
@@ -1655,7 +1653,7 @@ class TaskSequence(CompositeTask):
self.wait()
class SubProcess(AsynchronousTask):
- __slots__ = ("pid",)
+ __slots__ = ("pid", "reg_id", "scheduler")
# A file descriptor is required for the scheduler to monitor changes from
# inside a poll() loop. When logging is not enabled, create a pipe just to
@@ -1686,6 +1684,7 @@ class SubProcess(AsynchronousTask):
def _wait(self):
if self.returncode is not None:
return self.returncode
+ self.scheduler.schedule(self.reg_id)
self._set_returncode(os.waitpid(self.pid, 0))
return self.returncode
@@ -1713,7 +1712,7 @@ class SpawnProcess(SubProcess):
"uid", "gid", "groups", "umask", "logfile",
"path_lookup", "pre_exec")
- __slots__ = ("args", "files", "registered", "reg_id", "scheduler") + \
+ __slots__ = ("args", "files", "registered") + \
_spawn_kwarg_names
_file_names = ("process", "out")
@@ -2161,8 +2160,8 @@ class EbuildExecuter(CompositeTask):
class EbuildPhase(SubProcess):
__slots__ = ("fd_pipes", "phase", "pkg",
- "scheduler", "settings", "tree",
- "files", "registered", "reg_id")
+ "settings", "tree",
+ "files", "registered")
_file_names = ("log", "stdout", "ebuild")
_files_dict = slot_dict_class(_file_names, prefix="")