session-ios/SessionUtilitiesKit/PromiseKit/Promise+Retaining.swift

46 lines
922 B
Swift
Raw Permalink Normal View History

2020-11-16 00:34:47 +01:00
import PromiseKit
public extension AnyPromise {
2020-12-18 05:37:29 +01:00
@objc func retainUntilComplete() {
2020-11-16 00:34:47 +01:00
var retainCycle: AnyPromise? = self
_ = self.ensure {
assert(retainCycle != nil)
retainCycle = nil
}
}
}
public extension PMKFinalizer {
func retainUntilComplete() {
var retainCycle: PMKFinalizer? = self
self.finally {
assert(retainCycle != nil)
retainCycle = nil
}
}
}
public extension Promise {
func retainUntilComplete() {
var retainCycle: Promise<T>? = self
_ = self.ensure {
assert(retainCycle != nil)
retainCycle = nil
}
}
}
public extension Guarantee {
func retainUntilComplete() {
var retainCycle: Guarantee<T>? = self
_ = self.done { _ in
assert(retainCycle != nil)
retainCycle = nil
}
}
}