allow the propagation to handle dynamic access to reactives
to be implemented by the propagation algorithm, called when a new reactive has been instantiated and needs to be connected to the graph and potentially reevaluated.
to be implemented by the propagation algorithm, called when a new reactive has been instantiated and needs to be connected to the graph and potentially reevaluated.
the newly instantiated reactive
a set of incoming dependencies
true if the reactive must be reevaluated at creation even if none of its dependencies change in the creating turn.
Creates the internal state of Deriveds
Creates the internal state of Deriveds
Locks (and potentially otherwise prepares) all affected reactive values to prevent interfering changes.
Locks (and potentially otherwise prepares) all affected reactive values to prevent interfering changes.
List of affected reactive values
Performs the actual propagation, setting the new (not yet committed) values for each reactive element.
Performs the actual propagation, setting the new (not yet committed) values for each reactive element.
Unlocks (and potentially otherwise reverts the propagation preparations for) each reactive value to allow future turns to run on them.
Unlocks (and potentially otherwise reverts the propagation preparations for) each reactive value to allow future turns to run on them.
Commits all uncommitted changes to the reactive element.
Commits all uncommitted changes to the reactive element.
Starts the propagation by applying the initial changes
Starts the propagation by applying the initial changes
Creates the internal state of ReSources
Creates the internal state of ReSources
Call all registered after-commit obverser functions.
Call all registered after-commit obverser functions.
hook for schedulers to globally collect all created resources, usually does nothing
hook for schedulers to globally collect all created resources, usually does nothing
Reverts all uncommitted changes to the reactive element.
Reverts all uncommitted changes to the reactive element.
Schedules a temporarily written change to be committed by the turn.
Schedules a temporarily written change to be committed by the turn.
Basic implementation of the most fundamental propagation steps as defined by AbstractPropagation. Only compatible with spore definitions that store a pulse value and support graph operations.