Thread safety of weak properties

It does not. OSSpinLock is unsafe unless you can guarantee that all users have the same priority.

···

On Dec 14, 2015, at 7:26 PM, Kevin Ballard via swift-dev <swift-dev@swift.org> wrote:

On Mon, Dec 14, 2015, at 12:19 PM, Greg Parker via swift-dev wrote:

On Dec 14, 2015, at 9:47 AM, John McCall via swift-dev <swift-dev@swift.org> wrote:

On Dec 12, 2015, at 7:04 PM, Chris Lattner <clattner@apple.com> wrote:
#3 sounds like a great approach to me. I agree with Kevin that if we keep the object husk approach that any use of a weak pointer that returns nil should drop any reference to a husk.

Spin locks are, unfortunately, illegal on iOS, which does not guarantee progress in the face of priority inversion.

There is a spinlock algorithm that does work (in practice if not in theory), but it requires a full word of storage instead of a single bit.

Is that what OSSpinLock uses?

--
Greg Parker gparker@apple.com Runtime Wrangler