Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d231e287 authored by Alexandre Roux's avatar Alexandre Roux
Browse files

Revert "advanced-privacy: run everything in same scope to prevent race conditions"

This reverts commit d3c76d20.
parent 0cacbaa0
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ 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
@@ -105,12 +104,11 @@ open class BaseFeature<State : Any, in Action : Any, in Effect : Any, SingleEven
    }

    private suspend fun Flow<Action>.collectIntoHandler(
        @Suppress("UNUSED_PARAMETER")callerCoroutineScope: CoroutineScope,
        callerCoroutineScope: CoroutineScope,
        @Suppress("UNUSED_PARAMETER") logger: Logger
    ) {
        val scope = CoroutineScope(Dispatchers.IO + Job())
        onEach { action ->
            scope.launch {
            callerCoroutineScope.launch(Dispatchers.IO) {
                actor.invoke(_state.value, action)
                    .onEach { effect ->
                        mutex.withLock {
@@ -125,9 +123,9 @@ open class BaseFeature<State : Any, in Action : Any, in Effect : Any, SingleEven
                            }
                        }
                    }
                    .launchIn(scope)
                    .launchIn(coroutineScope)
            }
        }
            .launchIn(scope)
            .launchIn(callerCoroutineScope)
    }
}