summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/__init__.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 0ea40b905..8b7c69e7c 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -10822,7 +10822,14 @@ class Scheduler(PollScheduler):
continue
if child is pkg:
continue
- dep_stack.append(child)
+ if child.operation == 'merge' and \
+ child in completed_tasks:
+ # When traversing children, only traverse completed
+ # 'merge' nodes since those are the only ones that need
+ # to be checked for unsatisfied runtime deps, and it's
+ # normal for nodes that aren't yet complete to have
+ # unsatisfied runtime deps.
+ dep_stack.append(child)
if child.operation == 'merge' and \
child not in completed_tasks and \
child in unsatisfied_runtime: