-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
One of the fallouts of executing callbacks in a deferred state is that the locks no longer prevent cyclic updates. For well defined values, this works perfectly. But for something like floating points, this can cause not-quite-the-same values to continue to propagate until they stabilize. The 7guis-temperature-converter, for example, would sometimes replace the currently editing text with an imprecise float result computed from a roundtrip temperature conversion. This change adds tracking to these deferred callbacks that ensures for each "root" invocation of a dynamic's callbacks, all affected change callbacks are invoked a single time in any given execution chain, taking care to support divergent chains causing an individual set of callbacks to be invoked more than one time as long as their individiaul call chains have not yet invoked the callbacks.
- Loading branch information
Showing
1 changed file
with
214 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters