     - parameter closure: Closure to execute inside of the lock.
     - returns: The result of the closure.
     */
-    public func around<T>(closure: () -> T) -> T {
+    public func around<T>(@noescape closure: () -> T) -> T {
         OSSpinLockLock(&spinlock)
         let result: T = closure()
         OSSpinLockUnlock(&spinlock)

    
    - parameter closure: Closure to execute inside of the lock.
    */
    public func around(closure: () -> Void) {
        OSSpinLockLock(&spinlock)
        closure()
        OSSpinLockUnlock(&spinlock)

    - parameter closure: Closure to execute inside of the lock.
    - returns: False if it failed to acquire the lock, otherwise true.
    */
    public func tryaround(@noescape closure: () -> Void) -> Bool {
        let held = OSSpinLockTry(&spinlock)
        if !held {
            closure()
