summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/emerge/__init__.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 475105672..89e718ea7 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -2155,6 +2155,10 @@ class depgraph(object):
mergeable_nodes, selected_nodes, child):
return False
return True
+ # If necessary, resample the leaf nodes so that they
+ # include all nodes whose hard deps are satisfied.
+ if ignore_priority < DepPriority.MEDIUM:
+ nodes = get_nodes(ignore_priority=DepPriority.MEDIUM)
mergeable_nodes = set(nodes)
for ignore_priority in xrange(DepPriority.SOFT,
DepPriority.MEDIUM_SOFT + 1):
@@ -2182,6 +2186,8 @@ class depgraph(object):
for child in medium_soft:
if child in selected_nodes:
continue
+ if child in asap_nodes:
+ continue
# TODO: Try harder to make these nodes get
# merged absolutely as soon as possible.
asap_nodes.append(child)