session-ios/SessionUtilitiesKit/AnyPromise+Retaining.swift

18 lines
466 B
Swift

import PromiseKit
public extension AnyPromise {
/**
* Sometimes there isn't a straightforward candidate to retain a promise. In that case we tell the
* promise to self retain until it completes, to avoid the risk it's GC'd before completion.
*/
@objc
func retainUntilComplete() {
var retainCycle: AnyPromise? = self
_ = self.ensure {
assert(retainCycle != nil)
retainCycle = nil
}
}
}