0001    //
0002    //  SpinLock.swift
0003    //  Swinject
0004    //
0005    //  Created by Yoichi Tagaya on 11/26/15.
0006    //  Copyright © 2015 Swinject Contributors. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    internal final class SpinLock
Container.swift:34
    internal let lock: SpinLock // Used by SynchronizedResolver.
Container.swift:41
        self.lock = parent.map { $0.lock } ?? SpinLock()
{ 0012 private var lock
SpinLock.swift:15
        OSSpinLockLock(&lock)
SpinLock.swift:16
        defer { OSSpinLockUnlock(&lock) }
= OS_SPINLOCK_INIT 0013 0014 func sync
SynchronizedResolver.Arguments.swift:24
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:34
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:43
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:53
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:62
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:72
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:81
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:91
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:100
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:110
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:119
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:129
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:138
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:148
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:157
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:167
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:176
        return container.lock.sync {
SynchronizedResolver.Arguments.swift:186
        return container.lock.sync {
SynchronizedResolver.swift:19
        return container.lock.sync {
SynchronizedResolver.swift:25
        return container.lock.sync {
<T>(@noescape action: () -> T) -> T { 0015 OSSpinLockLock(&lock) 0016 defer { OSSpinLockUnlock(&lock) } 0017 0018 return action() 0019 } 0020 } 0021