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

Commit dd287aea authored by Kweku Adams's avatar Kweku Adams Committed by Automerger Merge Worker
Browse files

Merge "Modify app scheduling module thread." into udc-dev am: 1f456af8

parents 57233c0f 1f456af8
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -20,29 +20,30 @@ import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Process;
import android.os.Trace;

import java.util.concurrent.Executor;

/**
 * Shared singleton background thread.
 * Shared singleton default priority thread for the app scheduling module.
 *
 * @see com.android.internal.os.BackgroundThread
 */
public final class JobSchedulerBackgroundThread extends HandlerThread {
public final class AppSchedulingModuleThread extends HandlerThread {
    private static final long SLOW_DISPATCH_THRESHOLD_MS = 10_000;
    private static final long SLOW_DELIVERY_THRESHOLD_MS = 30_000;
    private static JobSchedulerBackgroundThread sInstance;
    private static AppSchedulingModuleThread sInstance;
    private static Handler sHandler;
    private static Executor sHandlerExecutor;

    private JobSchedulerBackgroundThread() {
        super("jobscheduler.bg", android.os.Process.THREAD_PRIORITY_BACKGROUND);
    private AppSchedulingModuleThread() {
        super("appscheduling.default", Process.THREAD_PRIORITY_DEFAULT);
    }

    private static void ensureThreadLocked() {
        if (sInstance == null) {
            sInstance = new JobSchedulerBackgroundThread();
            sInstance = new AppSchedulingModuleThread();
            sInstance.start();
            final Looper looper = sInstance.getLooper();
            looper.setTraceTag(Trace.TRACE_TAG_SYSTEM_SERVER);
@@ -53,25 +54,25 @@ public final class JobSchedulerBackgroundThread extends HandlerThread {
        }
    }

    /** Returns the JobSchedulerBackgroundThread singleton */
    public static JobSchedulerBackgroundThread get() {
        synchronized (JobSchedulerBackgroundThread.class) {
    /** Returns the AppSchedulingModuleThread singleton */
    public static AppSchedulingModuleThread get() {
        synchronized (AppSchedulingModuleThread.class) {
            ensureThreadLocked();
            return sInstance;
        }
    }

    /** Returns the singleton handler for JobSchedulerBackgroundThread */
    /** Returns the singleton handler for AppSchedulingModuleThread */
    public static Handler getHandler() {
        synchronized (JobSchedulerBackgroundThread.class) {
        synchronized (AppSchedulingModuleThread.class) {
            ensureThreadLocked();
            return sHandler;
        }
    }

    /** Returns the singleton handler executor for JobSchedulerBackgroundThread */
    /** Returns the singleton handler executor for AppSchedulingModuleThread */
    public static Executor getExecutor() {
        synchronized (JobSchedulerBackgroundThread.class) {
        synchronized (AppSchedulingModuleThread.class) {
            ensureThreadLocked();
            return sHandlerExecutor;
        }
+4 −4
Original line number Diff line number Diff line
@@ -1327,7 +1327,7 @@ public class DeviceIdleController extends SystemService
                IDLE_AFTER_INACTIVE_TIMEOUT = DEFAULT_IDLE_AFTER_INACTIVE_TIMEOUT_SMALL_BATTERY;
            }
            DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_DEVICE_IDLE,
                    JobSchedulerBackgroundThread.getExecutor(), this);
                    AppSchedulingModuleThread.getExecutor(), this);
            // Load all the constants.
            onPropertiesChanged(DeviceConfig.getProperties(DeviceConfig.NAMESPACE_DEVICE_IDLE));
        }
@@ -2416,7 +2416,7 @@ public class DeviceIdleController extends SystemService
        }

        MyHandler getHandler(DeviceIdleController controller) {
            return controller.new MyHandler(JobSchedulerBackgroundThread.getHandler().getLooper());
            return controller.new MyHandler(AppSchedulingModuleThread.getHandler().getLooper());
        }

        Sensor getMotionSensor() {
@@ -2488,7 +2488,7 @@ public class DeviceIdleController extends SystemService
        mConfigFile = new AtomicFile(new File(getSystemDir(), "deviceidle.xml"));
        mHandler = mInjector.getHandler(this);
        mAppStateTracker = mInjector.getAppStateTracker(context,
                JobSchedulerBackgroundThread.get().getLooper());
                AppSchedulingModuleThread.get().getLooper());
        LocalServices.addService(AppStateTracker.class, mAppStateTracker);
        mUseMotionSensor = mInjector.useMotionSensor();
    }
@@ -2681,7 +2681,7 @@ public class DeviceIdleController extends SystemService
                mLocalActivityTaskManager.registerScreenObserver(mScreenObserver);

                mInjector.getTelephonyManager().registerTelephonyCallback(
                        JobSchedulerBackgroundThread.getExecutor(), mEmergencyCallListener);
                        AppSchedulingModuleThread.getExecutor(), mEmergencyCallListener);

                passWhiteListsToForceAppStandbyTrackerLocked();
                updateInteractivityLocked();
+2 −2
Original line number Diff line number Diff line
@@ -147,12 +147,12 @@ import com.android.internal.util.LocalLog;
import com.android.internal.util.RingBuffer;
import com.android.internal.util.StatLogger;
import com.android.server.AlarmManagerInternal;
import com.android.server.AppSchedulingModuleThread;
import com.android.server.AppStateTracker;
import com.android.server.AppStateTrackerImpl;
import com.android.server.AppStateTrackerImpl.Listener;
import com.android.server.DeviceIdleInternal;
import com.android.server.EventLogTags;
import com.android.server.JobSchedulerBackgroundThread;
import com.android.server.LocalServices;
import com.android.server.SystemClockTime;
import com.android.server.SystemClockTime.TimeConfidence;
@@ -4691,7 +4691,7 @@ public class AlarmManagerService extends SystemService {

        void registerDeviceConfigListener(DeviceConfig.OnPropertiesChangedListener listener) {
            DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_ALARM_MANAGER,
                    JobSchedulerBackgroundThread.getExecutor(), listener);
                    AppSchedulingModuleThread.getExecutor(), listener);
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ import com.android.internal.app.IBatteryStats;
import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.util.MemInfoReader;
import com.android.internal.util.StatLogger;
import com.android.server.JobSchedulerBackgroundThread;
import com.android.server.AppSchedulingModuleThread;
import com.android.server.LocalServices;
import com.android.server.job.controllers.JobStatus;
import com.android.server.job.controllers.StateController;
@@ -499,7 +499,7 @@ class JobConcurrencyManager {
        mInjector = injector;
        mNotificationCoordinator = new JobNotificationCoordinator();

        mHandler = JobSchedulerBackgroundThread.getHandler();
        mHandler = AppSchedulingModuleThread.getHandler();

        mGracePeriodObserver = new GracePeriodObserver(mContext);
        mShouldRestrictBgUser = mContext.getResources().getBoolean(
+2 −2
Original line number Diff line number Diff line
@@ -105,10 +105,10 @@ import com.android.internal.os.SomeArgs;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FrameworkStatsLog;
import com.android.server.AppSchedulingModuleThread;
import com.android.server.AppStateTracker;
import com.android.server.AppStateTrackerImpl;
import com.android.server.DeviceIdleInternal;
import com.android.server.JobSchedulerBackgroundThread;
import com.android.server.LocalServices;
import com.android.server.job.JobSchedulerServiceDumpProto.PendingJob;
import com.android.server.job.controllers.BackgroundJobsController;
@@ -411,7 +411,7 @@ public class JobSchedulerService extends com.android.server.SystemService
            EconomyManagerInternal.TareStateChangeListener {
        public void start() {
            DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_JOB_SCHEDULER,
                    JobSchedulerBackgroundThread.getExecutor(), this);
                    AppSchedulingModuleThread.getExecutor(), this);
            final EconomyManagerInternal economyManagerInternal =
                    LocalServices.getService(EconomyManagerInternal.class);
            economyManagerInternal
Loading