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

Commit 29665284 authored by Orhan Uysal's avatar Orhan Uysal
Browse files

Add trace markers to monitor persistence updates

Bug: 435095733
Test: m
Flag: EXEMPT Adding trace markers
Change-Id: I9b15534bd22be192071f8075ef0b27d74d748e62
parent 89006a80
Loading
Loading
Loading
Loading
+68 −53
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.window.DesktopExperienceFlags
import android.window.DesktopModeFlags
import androidx.core.util.forEach
import androidx.core.util.valueIterator
import androidx.tracing.Trace
import com.android.app.tracing.traceSection
import com.android.internal.annotations.VisibleForTesting
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.common.WorkSerializer
@@ -1167,25 +1169,32 @@ class DesktopRepository(
            }
            .toTypedArray()

    private fun updatePersistentRepository(displayId: Int) {
    private fun updatePersistentRepository(displayId: Int): Unit =
        traceSection("DesktopRepository#updatePersistentRepository") {
            logD("updatePersistentRepository: displayId=%d", displayId)
            if (displayId == INVALID_DISPLAY) return

            val desks = desktopData.desksSequence(displayId).map { it.deepCopy() }.toList()
            if (desks.isEmpty()) {
            logD("updatePersistentRepository: no desks found for displayId=%d, skipping", displayId)
                logD(
                    "updatePersistentRepository: no desks found for displayId=%d, skipping",
                    displayId,
                )
                return
            }
            if (DesktopExperienceFlags.REPOSITORY_BASED_PERSISTENCE.isTrue) {
                persistentUpdateQueue.post {
                try {
                    Trace.beginSection("DesktopRepository#UpdateRepoWork")
                    logD("updatePersistentRepository user=%d display=%d", userId, displayId)
                    try {
                        persistentRepository.addOrUpdateRepository(userId, desks)
                    } catch (exception: Exception) {
                        logE(
                            "An exception occurred while updating the persistent repository \n%s",
                            exception.stackTrace,
                        )
                    } finally {
                        Trace.endSection()
                    }
                }
            } else {
@@ -1199,7 +1208,8 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private fun updatePersistentRepositoryForDesk(deskId: Int) {
    private fun updatePersistentRepositoryForDesk(deskId: Int): Unit =
        traceSection("DesktopRepository#updatePersistentRepositoryForDeskId") {
            val desk = desktopData.getDesk(deskId)?.deepCopy() ?: return
            mainCoroutineScope.launch { updatePersistentRepositoryForDesk(desk) }
        }
@@ -1208,7 +1218,8 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private suspend fun updatePersistentRepositoryForDesk(desk: Desk) {
    private suspend fun updatePersistentRepositoryForDesk(desk: Desk) =
        traceSection("DesktopRepository#updatePersistentRepositoryForDesk") {
            try {
                persistentRepository.addOrUpdateDesktop(
                    userId = userId,
@@ -1231,20 +1242,24 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private fun removeDeskFromPersistentRepository(desk: Desk) {
    private fun removeDeskFromPersistentRepository(desk: Desk) =
        traceSection("DesktopRepository#removeDeskFromPersistentRepository") {
            mainCoroutineScope.launch {
            try {
                logD(
                    "updatePersistentRepositoryForRemovedDesk user=%d desk=%d",
                    userId,
                    desk.deskId,
                )
                Trace.beginSection("DesktopRepository#removeDeskWork")
                try {
                    persistentRepository.removeDesktop(userId = userId, desktopId = desk.deskId)
                } catch (throwable: Throwable) {
                    logE(
                        "An exception occurred while updating the persistent repository \n%s",
                        throwable.stackTrace,
                    )
                } finally {
                    Trace.endSection()
                }
            }
        }