mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-02 20:55:48 +00:00
no message
This commit is contained in:
parent
3fc7e73578
commit
1ecaf8cf5f
@ -28,4 +28,26 @@ public final class QueueLocalObject<T: AnyObject> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public func syncWith<R>(_ f: @escaping (T) -> R) -> R? {
|
||||
var result: R?
|
||||
self.queue.sync {
|
||||
if let valueRef = self.valueRef {
|
||||
let value = valueRef.takeUnretainedValue()
|
||||
result = f(value)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
public func signalWith<R, E>(_ f: @escaping (T, Subscriber<R, E>) -> Disposable) -> Signal<R, E> {
|
||||
return Signal { [weak self] subscriber in
|
||||
if let strongSelf = self, let valueRef = strongSelf.valueRef {
|
||||
let value = valueRef.takeUnretainedValue()
|
||||
return f(value, subscriber)
|
||||
} else {
|
||||
return EmptyDisposable
|
||||
}
|
||||
} |> runOn(self.queue)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user