aboutsummaryrefslogtreecommitdiff
path: root/src/ModuleManager.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ModuleManager.py')
-rw-r--r--src/ModuleManager.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ModuleManager.py b/src/ModuleManager.py
index bbe7ab30..ef452ff8 100644
--- a/src/ModuleManager.py
+++ b/src/ModuleManager.py
@@ -24,6 +24,8 @@ class ModuleDependencyNotFulfilled(ModuleException):
% (module, dependency))
self.module = module
self.dependency = dependency
+class ModuleCircularDependency(ModuleException):
+ pass
class ModuleType(enum.Enum):
FILE = 0
@@ -266,9 +268,12 @@ class ModuleManager(object):
self.log.warn(
"Circular dependencies detected: %s<->%s",
[name, dep_name])
+ changed = True
# snap a circular dependence
deps.remove(dep_name)
definition_dependencies[dep_name].remove(name)
+ if not changed:
+ raise ModuleCircularDependency()
return [definition_names[name] for name in definitions_ordered]