diff --git a/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt b/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt index 068cd8ee22437e25bd748417fbbd02587f5109a8..e3dd25795b14d929fd7081b8f8aa37cab45a0eb1 100644 --- a/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt +++ b/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt @@ -24,6 +24,7 @@ import foundation.e.flowmvi.Reducer import foundation.e.flowmvi.SingleEventProducer import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -104,11 +105,12 @@ open class BaseFeature.collectIntoHandler( - callerCoroutineScope: CoroutineScope, + @Suppress("UNUSED_PARAMETER")callerCoroutineScope: CoroutineScope, @Suppress("UNUSED_PARAMETER") logger: Logger ) { + val scope = CoroutineScope(Dispatchers.IO + Job()) onEach { action -> - callerCoroutineScope.launch(Dispatchers.IO) { + scope.launch { actor.invoke(_state.value, action) .onEach { effect -> mutex.withLock { @@ -123,9 +125,9 @@ open class BaseFeature