summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/Scheduler.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-09-04 16:00:36 -0700
committerZac Medico <zmedico@gentoo.org>2010-09-04 16:00:36 -0700
commit3f901a5c683fb90ef69c33c8e8f1a8f65853b43a (patch)
treeb7d8816bb4d3f54306f142b0ca7304bab0fa706a /pym/_emerge/Scheduler.py
parent208e905b68118621ea74999c1e1b589e7a83d203 (diff)
downloadportage-3f901a5c683fb90ef69c33c8e8f1a8f65853b43a.tar.gz
portage-3f901a5c683fb90ef69c33c8e8f1a8f65853b43a.tar.bz2
portage-3f901a5c683fb90ef69c33c8e8f1a8f65853b43a.zip
Add a Scheduler._frozen_config attribute that will be useful for
dependency calculations related to aggressive parallelization (bug #279623). The FakeVartree instances are shared with the existing BlockerDB instances.
Diffstat (limited to 'pym/_emerge/Scheduler.py')
-rw-r--r--pym/_emerge/Scheduler.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index b78be89f9..86d815c8c 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -38,7 +38,8 @@ from _emerge.clear_caches import clear_caches
from _emerge.create_depgraph_params import create_depgraph_params
from _emerge.create_world_atom import create_world_atom
from _emerge.DepPriority import DepPriority
-from _emerge.depgraph import depgraph, resume_depgraph
+from _emerge.depgraph import depgraph, resume_depgraph, \
+ _frozen_depgraph_config
from _emerge.EbuildFetcher import EbuildFetcher
from _emerge.EbuildPhase import EbuildPhase
from _emerge.emergelog import emergelog, _emerge_log_dir
@@ -196,17 +197,23 @@ class Scheduler(PollScheduler):
self.edebug = 0
if settings.get("PORTAGE_DEBUG", "") == "1":
self.edebug = 1
- self.pkgsettings = {}
self._config_pool = {}
# TODO: Replace the BlockerDB with a depgraph of installed packages
# that's updated incrementally with each upgrade/uninstall operation
# This will be useful for making quick and safe decisions with respect
# to aggressive parallelization discussed in bug #279623.
+ frozen_config = None
+ if frozen_config is None:
+ frozen_config = _frozen_depgraph_config(settings, trees,
+ myopts, None)
+ self._frozen_config = frozen_config
+ self.pkgsettings = frozen_config.pkgsettings
self._blocker_db = {}
for root in trees:
self._config_pool[root] = []
- self._blocker_db[root] = BlockerDB(trees[root]["root_config"])
+ self._blocker_db[root] = BlockerDB(
+ frozen_config.trees[root]["vartree"])
fetch_iface = self._fetch_iface_class(log_file=self._fetch_log,
schedule=self._schedule_fetch)