Davide Della Casa
2014-09-15 23:10:41 UTC
In the Celsius - Fahrenheit example, each text box is connected to the other one.
So changing the Celsius calculates the Fahrenheit and vice-versa.
Question is: why does it not go in infinite updates between the two text boxes?
Im going through the code and How connect works and cant figure out whats preventing the infinite updates. The original Ingalls 1988 Fabrik paper mentions that this loop can/should/is avoided but it doesnt give specifics (with some care and bidirectionality shorthand for multiple paths page 5). There doesnt seem to be a check in connect or update or the setter. The setter seems to do an update, so why doesnt changing the C box cause the setter of F to invoke updates on C again?
Also tried to look for loop in source code https://github.com/LivelyKernel/LivelyKernel/search?utf8=%E2%9C%93&q=loop&type=Code but nothing jumps to the eye.
Whats the trick Im missing?
(BTW the edit/select/move-cursor behaviour in the text boxes when they are connected is glitchy)
Cheers,
Davide Della Casa
So changing the Celsius calculates the Fahrenheit and vice-versa.
Question is: why does it not go in infinite updates between the two text boxes?
Im going through the code and How connect works and cant figure out whats preventing the infinite updates. The original Ingalls 1988 Fabrik paper mentions that this loop can/should/is avoided but it doesnt give specifics (with some care and bidirectionality shorthand for multiple paths page 5). There doesnt seem to be a check in connect or update or the setter. The setter seems to do an update, so why doesnt changing the C box cause the setter of F to invoke updates on C again?
Also tried to look for loop in source code https://github.com/LivelyKernel/LivelyKernel/search?utf8=%E2%9C%93&q=loop&type=Code but nothing jumps to the eye.
Whats the trick Im missing?
(BTW the edit/select/move-cursor behaviour in the text boxes when they are connected is glitchy)
Cheers,
Davide Della Casa