[swift-users] Lazy expression is ambiguous?

Quinn "The Eskimo!" eskimo1 at apple.com
Mon Sep 12 05:02:59 CDT 2016

On 12 Sep 2016, at 09:20, Rick Mann <rmann at latencyzero.com> wrote:

> I've always wondered why that was the case.

Implementing `dispatch_once` so that it’s fast on all CPU architectures, including those with a weak memory model, requires that ‘once token’:

* be initialised to 0 before `dispatch_once` sees it

* not modified by anything other than `dispatch_once`

That’s true for [switching to Obj-C terminology here] global variables, which are initialised by the linker to 0 before any instruction in the process runs, but it’s not true for ivars.

If you want to see how this really works, you can check out the source in Darwin.


Frankly, it hurts my brain )-:

Share and Enjoy
Quinn "The Eskimo!"                    <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

More information about the swift-users mailing list