mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Memory management issues
This commit is contained in:
@@ -24,11 +24,7 @@ public func |> <T, U>(value: T, function: ((T) -> U)) -> U {
|
||||
}
|
||||
|
||||
private final class SubscriberDisposable<T, E>: Disposable, CustomStringConvertible {
|
||||
#if DEBUG
|
||||
private weak var subscriber: Subscriber<T, E>?
|
||||
#else
|
||||
private var subscriber: Subscriber<T, E>?
|
||||
#endif
|
||||
|
||||
private var lock = pthread_mutex_t()
|
||||
private var disposable: Disposable?
|
||||
@@ -78,6 +74,20 @@ public final class Signal<T, E> {
|
||||
return SubscriberDisposable(subscriber: subscriber, disposable: disposable)
|
||||
}
|
||||
|
||||
public func startStandalone(next: ((T) -> Void)! = nil, error: ((E) -> Void)! = nil, completed: (() -> Void)! = nil) -> Disposable {
|
||||
let subscriber = Subscriber<T, E>(next: next, error: error, completed: completed)
|
||||
let disposable = self.generator(subscriber)
|
||||
subscriber.assignDisposable(disposable)
|
||||
return SubscriberDisposable(subscriber: subscriber, disposable: disposable)
|
||||
}
|
||||
|
||||
public func startStrict(next: ((T) -> Void)! = nil, error: ((E) -> Void)! = nil, completed: (() -> Void)! = nil, file: String = #file, line: Int = #line) -> Disposable {
|
||||
let subscriber = Subscriber<T, E>(next: next, error: error, completed: completed)
|
||||
let disposable = self.generator(subscriber)
|
||||
subscriber.assignDisposable(disposable)
|
||||
return SubscriberDisposable(subscriber: subscriber, disposable: disposable).strict(file: file, line: line)
|
||||
}
|
||||
|
||||
public static func single(_ value: T) -> Signal<T, E> {
|
||||
return Signal<T, E> { subscriber in
|
||||
subscriber.putNext(value)
|
||||
|
||||
Reference in New Issue
Block a user