@propertyWrapper
struct Atomic<T> {
private var storedValue: T
private let lock = NSLock()
init(wrappedValue: T) { self.storedValue = wrappedValue}
var wrappedValue: T {
get {
lock.lock()
defer { lock.unlock() }
return storedValue
}
set {
lock.lock()
defer { lock.unlock() }
self.storedValue = newValue
}
_modify {
lock.lock()
defer { lock.unlock() }
yield &storedValue
}
}
}
do {
@Atomic
var x = [354,34,3,54,6,4]
x.append(20)
x.append(30)
print(x)
}
The _modify
never gets called. why? Is it a bug on swift 5.7?