summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-17 01:31:04 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-17 01:31:04 +0000
commit543bb237f93fcb1ff1bd82f58b243302c9497a79 (patch)
tree837244faec5461bf35717bafb64539725a0f2a9a /pym
parent0ba3c2a4de0dd08708fb96c27e4a4a97786485b5 (diff)
downloadportage-543bb237f93fcb1ff1bd82f58b243302c9497a79.tar.gz
portage-543bb237f93fcb1ff1bd82f58b243302c9497a79.tar.bz2
portage-543bb237f93fcb1ff1bd82f58b243302c9497a79.zip
Always be sure to load the latest version of the world file while it's locked.
svn path=/main/trunk/; revision=7286
Diffstat (limited to 'pym')
-rw-r--r--pym/emerge/__init__.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 951062982..b540c75c0 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -569,7 +569,7 @@ def clean_world(vardb, cpv):
"""Remove a package from the world file when unmerged."""
world_set = WorldSet("world", vardb.settings["ROOT"])
world_set.lock()
- worldlist = list(world_set)
+ worldlist = list(world_set) # loads latest from disk
mykey = portage.cpv_getkey(cpv)
newworldlist = []
for x in worldlist:
@@ -3196,6 +3196,7 @@ class depgraph(object):
root_config = self.roots[self.target_root]
world_set = root_config.sets["world"]
world_set.lock()
+ world_set.load() # maybe it's changed on disk
args_set = self._sets["args"]
portdb = self.trees[self.target_root]["porttree"].dbapi
added_favorites = set()
@@ -3743,6 +3744,7 @@ class MergeTask(object):
if not fetchonly and not pretend and \
args_set.containsCPV(pkg_key):
world_set.lock()
+ world_set.load() # maybe it's changed on disk
myfavkey = create_world_atom(pkg_key, metadata,
args_set, root_config)
if myfavkey: