summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-07 23:32:11 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-07 23:32:11 +0000
commitdc6f1843c745950b91a9bb64f5668de24f4cd08d (patch)
treef8a0f8f8a4d2e0f1524e9762ef612d59e99361e3
parent8ba83b5e9c0c94a1de753e41590db00294613cf3 (diff)
downloadportage-dc6f1843c745950b91a9bb64f5668de24f4cd08d.tar.gz
portage-dc6f1843c745950b91a9bb64f5668de24f4cd08d.tar.bz2
portage-dc6f1843c745950b91a9bb64f5668de24f4cd08d.zip
Add a Scheduler._digraph attribute for use in parallel build scheduling.
svn path=/main/trunk/; revision=10976
-rw-r--r--pym/_emerge/__init__.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 48e5ca6f2..3c94d61f2 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -7610,6 +7610,7 @@ class Scheduler(object):
self._pkg_count = self._pkg_count_class(
curval=0, maxval=merge_count)
self._max_jobs = 1
+ self._set_digraph(digraph)
self._jobs = 0
features = self.settings.features
@@ -7635,6 +7636,13 @@ class Scheduler(object):
except EnvironmentError:
pass
+ def _set_digraph(self, digraph):
+ if self._max_jobs < 2:
+ # save some memory
+ self._digraph = None
+ else:
+ self._digraph = digraph
+
class _pkg_failure(portage.exception.PortageException):
"""
An instance of this class is raised by unmerge() when
@@ -8103,6 +8111,8 @@ class Scheduler(object):
mylist = mydepgraph.altlist()
mydepgraph.break_refs(mylist)
mydepgraph.break_refs(dropped_tasks)
+ mydepgraph.break_refs(mydepgraph.digraph.order)
+ self._set_digraph(mydepgraph.digraph)
return (mylist, dropped_tasks)
def _show_list(self):