diff options
author | Jürg Billeter <j@bitron.ch> | 2019-07-11 14:04:15 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-07-11 14:09:43 +0200 |
commit | 1500dcaaa5dfffef4026f462a291ba7992ffa4e4 (patch) | |
tree | 4affec0669625b1464617b5155f294f9cea064b3 | |
parent | 077edb0040b928c669e617e1c4a6d6c87c27cd74 (diff) | |
download | buildstream-juerg/update_ready_for_runtime.tar.gz |
-rw-r--r-- | src/buildstream/element.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py index 2ca83f783..6610b7eb3 100644 --- a/src/buildstream/element.py +++ b/src/buildstream/element.py @@ -3214,6 +3214,37 @@ class Element(Plugin): self.__cache_key is not None and not self.__cache_keys_unstable: self.__ready_for_runtime = True + if not self.__ready_for_runtime_and_cached: + if self.__runtime_deps_uncached == 0 and self._cached_success() and \ + self.__cache_key and not self.__cache_keys_unstable: + self.__ready_for_runtime_and_cached = True + + # Notify reverse dependencies + for rdep in self.__reverse_runtime_deps: + n = rdep.__runtime_deps_without_cache_key - 1 + rdep.__runtime_deps_without_cache_key = n + + rdep.__runtime_deps_uncached -= 1 + + # Try to notify reverse dependencies if all runtime deps are ready + if n == 0: + rdep.__update_ready_for_runtime() + + for rdep in self.__reverse_build_deps: + n = rdep.__build_deps_without_cache_key - 1 + rdep.__build_deps_without_cache_key = n + + rdep.__build_deps_uncached -= 1 + + if n == 0: + rdep._update_state() + + if rdep.__buildable_callback is not None and rdep._buildable(): + rdep.__buildable_callback(rdep) + rdep.__buildable_callback = None + + return + # Notify reverse dependencies for rdep in self.__reverse_runtime_deps: n = rdep.__runtime_deps_without_cache_key - 1 |