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