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

Commit 893b56a4 authored by Makoto Onuki's avatar Makoto Onuki Committed by android-build-merger
Browse files

Merge "Fix dead lock between AM and BatterySaverStateMachine" into pi-dev

am: 9cbf27af

Change-Id: Icc350752c3ee97ddef8a412b6a16bd8795bd9c3c
parents 88f3f720 9cbf27af
Loading
Loading
Loading
Loading
+24 −15
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.util.proto.ProtoOutputStream;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.BackgroundThread;
import com.android.server.power.BatterySaverPolicy;
import com.android.server.power.BatterySaverStateMachineProto;

@@ -124,6 +125,8 @@ public class BatterySaverStateMachine {
        if (DEBUG) {
            Slog.d(TAG, "onBootCompleted");
        }
        // This is called with the power manager lock held. Don't do any
        runOnBgThread(() -> {
            synchronized (mLock) {

                final ContentResolver cr = mContext.getContentResolver();
@@ -143,6 +146,12 @@ public class BatterySaverStateMachine {

                doAutoBatterySaverLocked();
            }
        });
    }

    @VisibleForTesting
    void runOnBgThread(Runnable r) {
        BackgroundThread.getHandler().post(r);
    }

    void refreshSettingsLocked() {
+5 −0
Original line number Diff line number Diff line
@@ -139,6 +139,11 @@ public class BatterySaverStateMachineTest {
        protected int getGlobalSetting(String key, int defValue) {
            return mDevice.getGlobalSetting(key, defValue);
        }

        @Override
        void runOnBgThread(Runnable r) {
            r.run();
        }
    }

    @Before