All sounds nice, except for the fact that the parameters are being changed
"behind the scenes" via the binding system. So I think I may have to implement
locking on every (explicitly implemented) get/set method. That was what I had
been rather hoping to avoid, but it sounds from what people are saying as if
that's what I may have to do...
On 3 Sep 2013, at 13:54, Robert Vojta wrote:
> On Tue, Sep 3, 2013 at 2:39 PM, Jonathan Taylor
> <jonathan.tay...@glasgow.ac.uk> wrote:
>
> The primary instance of the object (call it MyParameters) is bound to UI
> elements. Changes to the UI will change the values of its properties
> (int/bool/double). These changes will take place on the main thread.
>
> 1. Create MyParameters instance on some object on the main thread and call it
> mainParameters for example.
>
> 2. All values are UI related, so, fill them on the main thread. But lock your
> mainParameters object before. So, on the main thread do this ...
>
> @synchronized( myObjectHoldingMyParameters.mainParameters ) {
> myObjectHoldingMyParameters.mainParameters.X = X;
> ...
> }
>
> 3. When you do want a copy on any other thread, do this ...
>
> MyParamaters *paramsCopy;
> @synchronized( myObjectHoldingMyParameters.mainParameters ) {
> paramsCopy = [myObjectHoldingMyParameters.mainParameters copy];
> }
>
> ... and implement deep copy without locking. It's done via @synchronized.
>
>
_______________________________________________
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