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

Commit 720ea3a1 authored by Riddle Hsu's avatar Riddle Hsu Committed by Gerrit Code Review
Browse files

Merge "Remove getProcessGroup usage in OomAdjuster"

parents 528a63d7 2bd41312
Loading
Loading
Loading
Loading
+6 −17
Original line number Diff line number Diff line
@@ -2872,29 +2872,18 @@ public class OomAdjuster {
    void setAttachingSchedGroupLSP(ProcessRecord app) {
        int initialSchedGroup = ProcessList.SCHED_GROUP_DEFAULT;
        final ProcessStateRecord state = app.mState;
        // If the process has been marked as foreground via Zygote.START_FLAG_USE_TOP_APP_PRIORITY,
        // then verify that the top priority is actually is applied.
        // If the process has been marked as foreground, it is starting as the top app (with
        // Zygote#START_AS_TOP_APP_ARG), so boost the thread priority of its default UI thread.
        if (state.hasForegroundActivities()) {
            String fallbackReason = null;
            try {
                // The priority must be the same as how does {@link #applyOomAdjLSP} set for
                // {@link ProcessList.SCHED_GROUP_TOP_APP}. We don't check render thread because it
                // is not ready when attaching.
                if (Process.getProcessGroup(app.getPid()) == THREAD_GROUP_TOP_APP) {
                app.getWindowProcessController().onTopProcChanged();
                setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST);
                } else {
                    fallbackReason = "not expected top priority";
                }
            } catch (Exception e) {
                fallbackReason = e.toString();
            }
            if (fallbackReason == null) {
                initialSchedGroup = ProcessList.SCHED_GROUP_TOP_APP;
            } else {
                // The real scheduling group will depend on if there is any component of the process
                // did something during attaching.
                Slog.w(TAG, "Fallback pre-set sched group to default: " + fallbackReason);
            } catch (Exception e) {
                Slog.w(TAG, "Failed to pre-set top priority to " + app + " " + e);
            }
        }