diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-11-09 22:18:21 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-11-09 22:18:21 +0000 |
commit | 8429cad5332f22cc6c80cad87bc532508371916e (patch) | |
tree | dc559c677977aff20a1d027eb152b6243c4bd813 | |
parent | da8db0b8189d038fbda86b002343c33247e0b6ee (diff) | |
download | portage-8429cad5332f22cc6c80cad87bc532508371916e.tar.gz portage-8429cad5332f22cc6c80cad87bc532508371916e.tar.bz2 portage-8429cad5332f22cc6c80cad87bc532508371916e.zip |
Inside Scheduler._reverse_uninstall_edges(), iover all nodes rather than just
the merge list, because some uninstall nodes may not be in the merge list
since they will be performed as part of an upgrade within a slot. This solves
a problem with Scheduler._choose_pkg() not parallelizing in some cases when
it should, due to an uninstall node not having it's edge reversed like it's
supposed to.
svn path=/main/trunk/; revision=11839
-rw-r--r-- | pym/_emerge/__init__.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index c2384234c..804afb3f7 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -9271,7 +9271,10 @@ class Scheduler(PollScheduler): graph = self._digraph - for node in self._mergelist: + # Iterate over all nodes rather than just the merge list, because + # some uninstall nodes may not be in the merge list since they will + # be performed as part of an upgrade within a slot. + for node in graph.all_nodes(): if not isinstance(node, Package) or \ node.operation != "uninstall": continue |