Re: Translating to Swift
Re: Translating to Swift
- Subject: Re: Translating to Swift
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Fri, 15 Aug 2014 09:17:03 +0700
On 15 Aug 2014, at 02:50, Quincey Morris <email@hidden> wrote:
> On Aug 14, 2014, at 11:44 , Gerriet M. Denkmann <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden