On 18/08/2022 17:34, Steven Crighton via use-livecode wrote:
Hi Mike,

I just tested the lazy load example and hit populate and clicked around etc and 
could not trigger an error.

As already confirmed, that problem is fixed in 10.

However, the lazy load example still contains bugs due to race conditions, some of which I described in some forum post somewhere (Boy do I hate the forums! Surely there's some way to check what posts I have done myself).

Thinking about it more, there are other race conditions which are perhaps more obscure, but more serious. I know it's only an example, and maybe can't be expected to be bulletproof, but as an example of how to do Lazy Loading it is (IMHO) really too naive and simplistic. People expect to take those examples and just use them.

The obvious race conditions are:

1. if multiple entries reference the same image, then there is a chance the earlier ones never get properly updated (sURLToIndex[pURL] will have been overwritten by the next call to onlineImage before the image value gets set).

2. if the user (or anything else) resets the dataContent of the widget while there are outstanding "load URL"s, then when the downloadComplete is triggered, it will set the image value for some random new item to the image of the earlier one.

3. And if the one which was wrongly set in case 2 above also happens to be a URL that occurs multiple time (i.e. case 1 above), then that wrongly set image will remain "forever".

Alex.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to