On Mar 8, 2012, at 14:29 , Charles Srstka wrote:

> For those two examples, it seems like having the default accessor return an 
> immutable array via copy would solve the issue.

It wouldn't solve, e.g., the possibly inconsistency between 'array.count' and a 
subsequent reference, unless it was coded to keep a "consistent" local 
reference to the copy of the array, in which case you'd want the copy to be 
explicit in the API so that a reader of the code would be aware, and that would 
be a non-atomic-level approach anyway.

I also wanted to point out that there's another defect in Tamas's code: it 
needs an explicit atomic 'copy' implementation, and therefore an explicit 
atomic 'mutableCopy' implementation. And who knows what else …

I'm begging ya to forgeddaboudit. The atomicity solution is a fantasy**. You 
can't solve thread safety at that level.



** However, we don't know the scenario Tamas wrote the code for. It's possible 
atomicity solved whatever issue he was facing, that wasn't general thread 
safety. It's also possible he didn't solve anything, but just changed a 
likely-to-cause-a-crash bug into a 
impossible-to-crash-but-likely-to-cause-a-rare-and-subtle-but-almost-impossible-to-debug-error
 bug.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to