Remove __update_state_recursively()

Description

This is another step towards addressing #1054 (closed). Now that we are using push-based queues, we should notify reverse dependencies of an Element upon the completion of a certain action.

This patch removes Element.__ready_for_runtime from update state and introduces the (potentially recursive) functions Element.__update_strict_cache_key_of_rdeps() and Element.__update_ready_for_runtime().

  • An Element will update the strict cache key of its reverse dependency when itself and it's runtime dependencies have strict cache keys
  • An Element becomes ready for runtime once it has a strong cache key and once all of its runtimes have strong cache keys. When __ready_for_runtime, we attempt to update __ready_for_runtime for reverse dependencies.

One of the earlier commits also introduces a change to our handling of workspace state changes. A workspaced Element's cache keys are not considered "stable" until we know whether or not it is cached, thus we have now introduced a new Boolean, Element.__cache_keys_unstable.

These changes have allowed for __update_state_recursively to be completely removed.

Edited by James Ennis

Merge request reports

Loading