diff options
| -rw-r--r-- | packages/SystemUI/utils/kairos/src/com/android/systemui/kairos/TFlow.kt | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/packages/SystemUI/utils/kairos/src/com/android/systemui/kairos/TFlow.kt b/packages/SystemUI/utils/kairos/src/com/android/systemui/kairos/TFlow.kt index 7ba1aca31eae..c773d9c0f254 100644 --- a/packages/SystemUI/utils/kairos/src/com/android/systemui/kairos/TFlow.kt +++ b/packages/SystemUI/utils/kairos/src/com/android/systemui/kairos/TFlow.kt @@ -520,16 +520,14 @@ internal constructor(internal val network: Network, internal val impl: InputNode @ExperimentalFrpApi suspend fun emit(value: T) { coroutineScope { + var jobOrNull: Job? = null val newEmit = async(start = CoroutineStart.LAZY) { + jobOrNull?.join() network.transaction { impl.visit(this, value) }.await() } - val jobOrNull = storage.getAndSet(newEmit) - if (jobOrNull?.isActive != true) { - newEmit.await() - } else { - jobOrNull.join() - } + jobOrNull = storage.getAndSet(newEmit) + newEmit.await() } } |