From: Zac Medico Date: Sun, 9 Nov 2008 22:18:21 +0000 (-0000) Subject: Inside Scheduler._reverse_uninstall_edges(), iover all nodes rather than just X-Git-Tag: v2.2_rc14~19 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=8429cad5332f22cc6c80cad87bc532508371916e;p=portage.git 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 --- 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