This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let disposable1 = Disposables.create { print("disposed-1 ☠️") } | |
let refCountDisposable = RefCountDisposable(disposable: disposable1) | |
let holdDisposable1 = refCountDisposable.retain() | |
let holdDisposable2 = refCountDisposable.retain() | |
print("main dispose") | |
refCountDisposable.dispose() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let queue = DispatchQueue.global() | |
let scheduler = ConcurrentDispatchQueueScheduler(queue: queue) | |
let observable = Observable<Void>.create { observer in | |
observer.onCompleted() | |
return ScheduledDisposable(scheduler: scheduler, disposable: Disposables.create { | |
print("thread - \(Thread.current)") | |
}) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let disposable1 = Disposables.create { print("disposed-1 ☠️") } | |
let disposable2 = Disposables.create { print("disposed-2 ☠️") } | |
let serialDisposable = SerialDisposable() | |
print("set disposable1") | |
serialDisposable.disposable = disposable1 | |
print("set disposable2") | |
serialDisposable.disposable = disposable2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static func create(_ disposable1: Disposable, _ disposable2: Disposable) -> Cancelable { | |
return BinaryDisposable(disposable1, disposable2) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let disposable1 = Disposables.create { print("disposed-1 ☠️") } | |
let disposable2 = Disposables.create { print("disposed-2 ☠️") } | |
let binaryDisposable = Disposables.create(disposable1, disposable2) | |
print("dispose") | |
binaryDisposable.dispose() | |
// log: | |
// dispose |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let disposable = Disposables.create() // useful when disposable mechanism is not necessary | |
disposable.dispose() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let observable = Observable<Void>.create { observer -> Disposable in | |
// run request | |
observer.onCompleted() | |
return Disposables.create { | |
// request.cancel() | |
print("disposed ☠️") | |
} | |
} | |
let disposable = observable.subscribe() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static func create(with dispose: @escaping () -> ()) -> Cancelable { | |
return AnonymousDisposable(disposeAction: dispose) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
static public func create() -> Disposable { | |
return NopDisposable.noOp | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol HasService1 { | |
var service1: Service1 { get } | |
} | |
protocol HasService2 { | |
var service2: Service2 { get } | |
} | |
class Service1 {} | |
class Service2 {} |