From 8429cad5332f22cc6c80cad87bc532508371916e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 9 Nov 2008 22:18:21 +0000 Subject: 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 --- pym/_emerge/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pym/_emerge') 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 -- cgit v1.2.3-1-g7c22