On 15 Aug 2014, at 02:50, Quincey Morris <quinceymor...@rivergatesoftware.com> 
wrote:

> On Aug 14, 2014, at 11:44 , Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote:
> 
>> But: is this thread-safe? What if several threads are trying to use the 
>> sharedThing?
> 
> Jean-Daniel is teasing you slightly. It *is* thread-safe. For the reason, 
> look at the August 1 entry in the Swift blog:
> 
>       https://developer.apple.com/swift/blog/
> 
> It’s in the 2nd-last paragraph of the entry.

This paragraph reads:

"The lazy initializer for a global variable (also for static members of structs 
and enums) is run the first time that global is accessed, and is launched as 
dispatch_once to make sure that the initialization is atomic. This enables a 
cool way to use dispatch_once in your code: just declare a global variable with 
an initializer and mark it private."

So it is indeed thread-safe via using dispatch_once. Good.

But does "global variable" means "var"? 
Jean-Daniel rightly says: " I think that it should be 'let' and not 'var', and 
you don't want the pointer to be changed after initialization"

So this:
        let sharedMaker : Maker = Maker();
seems to do exactly what I need in a thread-safe way.

Thanks for your help!

Kind regards,

Gerriet.


_______________________________________________

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