Only iterate a module's deps, not all modules, when checking for circular deps

This commit is contained in:
jesopo 2019-05-26 14:47:05 +01:00
parent dad85f6744
commit 38dd69a71e

View file

@ -253,14 +253,14 @@ class ModuleManager(object):
deps.remove(name) deps.remove(name)
if not changed: if not changed:
for name1, dep1 in definition_dependencies.items(): for name, deps in definition_dependencies.items():
for name2, dep2 in definition_dependencies.items(): for dep_name in deps:
if name1 in dep2 and name2 in dep1: if name in definition_dependencies[dep_name]:
self.log.warn("Circular dependencies: %s<->%s", self.log.warn("Circular dependencies: %s<->%s",
[name1, name2]) [name, dep_name])
# snap a circular dependence # snap a circular dependence
dep2.remove(name1) deps.remove(dep_name)
dep1.remove(name2) definition_dependencies[dep_name].remove(name)
return [definition_names[name] for name in definitions_ordered] return [definition_names[name] for name in definitions_ordered]