diff options
author | David James <davidjames@google.com> | 2011-03-24 18:14:45 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-03-24 18:14:45 -0700 |
commit | 99ec2a8f810ae7ea2c76d928665ed1d02c2d9cc7 (patch) | |
tree | e0e3b01aed934d87ccf6feb51ad7cc1aa2880e48 /pym/_emerge/BlockerDB.py | |
parent | 39911a4fc3859ae528dfe541ae9d9119291ae0e2 (diff) | |
download | portage-99ec2a8f810ae7ea2c76d928665ed1d02c2d9cc7.tar.gz portage-99ec2a8f810ae7ea2c76d928665ed1d02c2d9cc7.tar.bz2 portage-99ec2a8f810ae7ea2c76d928665ed1d02c2d9cc7.zip |
Update Portage to sync BlockerDB at init.
Currently, Portage syncs the BlockerDB before every merge. This slows
down merges considerably because it requires reading the entire vardb
from disk. Since Portage doesn't merge conflicting packages anyway, we
can optimize this by just reading the vardb at initialization and
caching that.
Change-Id: I6701926f022ef3aa2da10482fc8b09573ae24610
Review URL: http://codereview.chromium.org/6688037
Diffstat (limited to 'pym/_emerge/BlockerDB.py')
-rw-r--r-- | pym/_emerge/BlockerDB.py | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/pym/_emerge/BlockerDB.py b/pym/_emerge/BlockerDB.py index fd4bf5ece..f5adc4d67 100644 --- a/pym/_emerge/BlockerDB.py +++ b/pym/_emerge/BlockerDB.py @@ -30,12 +30,7 @@ class BlockerDB(object): "vartree" : fake_vartree, }} - def _get_fake_vartree(self, acquire_lock=0): - fake_vartree = self._fake_vartree - fake_vartree.sync(acquire_lock=acquire_lock) - return fake_vartree - - def findInstalledBlockers(self, new_pkg, acquire_lock=0): + def findInstalledBlockers(self, new_pkg): """ Search for installed run-time blockers in the root where new_pkg is planned to be installed. This ignores build-time @@ -45,7 +40,7 @@ class BlockerDB(object): dep_keys = ["RDEPEND", "PDEPEND"] settings = self._vartree.settings stale_cache = set(blocker_cache) - fake_vartree = self._get_fake_vartree(acquire_lock=acquire_lock) + fake_vartree = self._fake_vartree dep_check_trees = self._dep_check_trees vardb = fake_vartree.dbapi installed_pkgs = list(vardb) @@ -118,3 +113,7 @@ class BlockerDB(object): return blocking_pkgs + def discardBlocker(self, pkg): + """Discard a package from the list of potential blockers.""" + self._fake_vartree.cpv_discard(pkg) + |