Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- class WeakRef<T> where T: AnyObject {
- private let queue = DispatchQueue(label: "ThreadSafeWeakRef.queue", attributes: .concurrent)
- private(set) weak var _object: T?
- weak var object: T? {
- var result: T?
- queue.sync {
- result = _object
- }
- return result
- }
- init(object: T?) {
- queue.async(flags: .barrier) {
- self._object = object
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement