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

Verified Commit 97d18bfb authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

perf: remove system app concurrency cap

Let system app update fetches run concurrently without a semaphore limit.
parent c2a1e19f
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -35,8 +35,6 @@ import foundation.e.apps.data.system.SystemInfoProvider
import foundation.e.apps.domain.model.install.Status
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.sync.Semaphore
import kotlinx.coroutines.sync.withPermit
import timber.log.Timber
import java.util.Locale
import javax.inject.Inject
@@ -70,8 +68,6 @@ class SystemAppsUpdatesRepository @Inject constructor(
        private const val MILLIS_IN_SECOND = 1000L
        private const val SECONDS_IN_MINUTE = 60L
        private const val MINUTES_IN_HOUR = 60L

        private const val SYSTEM_APP_CONCURRENCY = 2
    }

    private fun getUpdatableSystemApps(): List<String> {
@@ -290,14 +286,11 @@ class SystemAppsUpdatesRepository @Inject constructor(
            updatableApps.size
        )

        val semaphore = Semaphore(SYSTEM_APP_CONCURRENCY)
        val fetchTasks = updatableApps.map { packageName ->
            async {
                semaphore.withPermit {
                fetchSystemAppUpdate(packageName, releaseType, sdkLevel, device)
            }
        }
        }

        fetchTasks.forEach { deferred ->
            deferred.await()?.let { updateList.add(it) }