> On Sep 17, 2022, at 9:43 PM, Sven Barth <[email protected]> wrote:
>
> Then you didn't read my announcement mail deeply enough, cause it's mentioned
> there!
Yes I just read that over and I remember it now. I feel like this not the same
behavior in other languages although I’d need to test. Most recently I’m using
Swift for my day job and I don’t recall ever having confusions like this come
up.
> And they are not pointers, but the variable is moved to an object instance
> which implements the interface of the function reference.
“Moved to an object” makes me think the variable is copied but the reference
behavior you describe sounds like a pointer so I’m still not 100% clear on what
you mean.
>
>
> Even so I’m trying now to modifying the example by copying to a local
> variable but I still see this same behavior suggesting there isn’t actually a
> copy. Why is this?
>
> When your callback is executed i might already have been changed!
Ok that makes sense now since it’s just a reference. So this would have worked
if I would have passed in i as a parameter and then stored it locally? I’m
thinking now how I can preserve a copy of the state in the scope for each
thread and I think local vars are the only way, correct? We need some more
thread based examples to help people understand I think because I’m finding all
sorts of edge cases updating a little thread library myself.
Regards,
Ryan Joseph
_______________________________________________
fpc-pascal maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal