jsdw_ios/Pods/Moya/Sources/Moya/Atomic.swift

32 lines
544 B
Swift

//
// Atomic.swift
// Moya
//
// Created by Luciano Almeida on 15/12/19.
//
import Foundation
@propertyWrapper
final class Atomic<Value> {
private var lock: NSRecursiveLock = NSRecursiveLock()
private var value: Value
var wrappedValue: Value {
get {
lock.lock(); defer { lock.unlock() }
return value
}
set {
lock.lock(); defer { lock.unlock() }
value = newValue
}
}
init(wrappedValue value: Value) {
self.value = value
}
}