<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">In the Celsius - Fahrenheit example, each text box is connected to the other one.<div><br></div><div>So changing the Celsius calculates the Fahrenheit and vice-versa.</div><div><br></div><div>Question is: why does it not go in infinite updates between the two text boxes?</div><div><br></div><div>I’m going through the code and “How connect works” and can’t figure out what’s preventing the infinite updates. The original Ingalls 1988 Fabrik paper mentions that this loop can/should/is avoided but it doesn’t give specifics (“with some care” and “bidirectionality…shorthand for multiple paths” page 5). There doesn’t seem to be a check in “connect” or “update” or the setter. The setter seems to do an update, so why doesn’t changing the C box cause the setter of F to invoke updates on C again?</div><div><br></div><div>Also tried to look for “loop” in source code <a href="https://github.com/LivelyKernel/LivelyKernel/search?utf8=✓&q=loop&type=Code">https://github.com/LivelyKernel/LivelyKernel/search?utf8=%E2%9C%93&q=loop&type=Code</a> but nothing jumps to the eye.</div><div><br></div><div>What’s the trick I’m missing?</div><div><br></div><div><div>(BTW the edit/select/move-cursor behaviour in the text boxes when they are connected is glitchy)</div></div><div><br></div><div>Cheers,</div><div>Davide Della Casa</div><div><br></div><div><div><br></div></div></body></html>