diff options
| author | 2019-05-25 21:47:28 +0100 | |
|---|---|---|
| committer | 2019-05-25 21:47:28 +0100 | |
| commit | 69a1f42ecc5ce09a2ec69c1b32b656759f744880 (patch) | |
| tree | cdc2518b543cca4542f856d98047bb1b6a7df7dd /src | |
| parent | fix cve.py helpstring (diff) | |
| signature | ||
Add basic comments for dependency-sorting system
Diffstat (limited to 'src')
| -rw-r--r-- | src/ModuleManager.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ModuleManager.py b/src/ModuleManager.py index 4b8fbd33..f650a6e6 100644 --- a/src/ModuleManager.py +++ b/src/ModuleManager.py @@ -241,12 +241,14 @@ class ModuleManager(object): to_remove = [] for name, dependencies in definition_dependencies.items(): if not dependencies: + # pop things with no unfufilled dependencies to_remove.append(name) for name in to_remove: definitions_ordered.append(name) del definition_dependencies[name] for deps in definition_dependencies.values(): if name in deps: + # fulfill dependencies for things we just popped changed = True deps.remove(name) @@ -256,6 +258,7 @@ class ModuleManager(object): if name1 in dep2 and name2 in dep1: self.log.warn("Cicular dependencies: %s<->%s", [name1, name2]) + # snap a cycular dependence dep2.remove(name1) dep1.remove(name2) |
