-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Closed
Description
Using Single.takeUntil does not dispose the subscription it makes to other when the main subscription is disposed. RxJava Version: 2.1.13
Sample
val control = Single.never<Nothing>()
.doOnSubscribe { println("Subscribe control") }
.doOnDispose { println("Dispose control") }
val disposable = Single.never<Nothing>()
.doOnSubscribe { println("Subscribe main") }
.doOnDispose { println("Dispose main") }
.takeUntil(control)
.subscribe()
disposable.dispose()prints only:
Subscribe control
Subscribe main
Dispose main
Comparison with Observable
For comparison, Observable.takeUntil:
val control = Observable.never<Nothing>()
.doOnSubscribe { println("Subscribe control") }
.doOnDispose { println("Dispose control") }
val disposable = Observable.never<Nothing>()
.doOnSubscribe { println("Subscribe main") }
.doOnDispose { println("Dispose main") }
.takeUntil(control)
.subscribe()
disposable.dispose()prints:
Subscribe control
Subscribe main
Dispose main
Dispose control