INNER CODE UNIT · Kotlin
dispose
M66B/FairEmail · app/src/main/java/androidx/lifecycle/CoroutineLiveData.kt:131
override fun dispose() {
CoroutineScope(Dispatchers.Main.immediate).launch { removeSource() }
}
@MainThread
private fun removeSource() {
if (!disposed) {
mediator.removeSource(source)
disposed = true
}
}
}
internal typealias Block<T> = suspend LiveDataScope<T>.() -> Unit
/** Handles running a block at most once to completion. */
internal class BlockRunner<T>(
private val liveData: CoroutineLiveData<T>,