diff options
author | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-02-06 13:56:53 +0000 |
---|---|---|
committer | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-02-06 13:56:53 +0000 |
commit | 00efed287f2973c3c2f1e14bd9eeb2b7d11d9065 (patch) | |
tree | 8c8865d0568704295f4b29ac14b2f72c20725c34 | |
parent | 0e47114402511680420156c066f6861d1b30a7f4 (diff) | |
download | buildstream-bschubert/wipe-internal-state.tar.gz |
Clean internal state after we loaded elementsbschubert/wipe-internal-state
Once the elements are loaded, we don't need to keep the internal
loading state and can remove it.
This will allow the garbage collector to be able to do its job
and remove the unused data.
-rw-r--r-- | buildstream/_loader/loader.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/buildstream/_loader/loader.py b/buildstream/_loader/loader.py index fc946d50b..3b9b768b5 100644 --- a/buildstream/_loader/loader.py +++ b/buildstream/_loader/loader.py @@ -278,6 +278,8 @@ class Loader(): deps_names = [dep.name for dep in dependencies] self._warn_invalid_elements(deps_names) + self._reset_internal_space() + return element # _check_circular_deps(): @@ -600,6 +602,13 @@ class Loader(): fetch_subprojects=fetch_subprojects) return junction_path[-2], junction_path[-1], loader + def _reset_internal_space(self): + for loader in self._loaders: + loader._reset_internal_space() + + self._meta_elements = {} + self._elements = {} + # Print a warning message, checks warning_token against project configuration # # Args: |