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

Commit d5c6c4a0 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Invoke BlobStoreManagerService.onStart() asynchronously."

parents 31662fba 95bd5411
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -342,6 +342,7 @@ public final class SystemServer {

    private static final String START_SENSOR_SERVICE = "StartSensorService";
    private static final String START_HIDL_SERVICES = "StartHidlServices";
    private static final String START_BLOB_STORE_SERVICE = "startBlobStoreManagerService";

    private static final String SYSPROP_START_COUNT = "sys.system_server.start_count";
    private static final String SYSPROP_START_ELAPSED = "sys.system_server.start_elapsed";
@@ -349,6 +350,7 @@ public final class SystemServer {

    private Future<?> mSensorServiceStart;
    private Future<?> mZygotePreload;
    private Future<?> mBlobStoreServiceStart;

    /**
     * Start the sensor service. This is a blocking call and can take time.
@@ -1795,6 +1797,13 @@ public final class SystemServer {
                t.traceEnd();
            }

            mBlobStoreServiceStart = SystemServerInitThreadPool.submit(() -> {
                final TimingsTraceAndSlog traceLog = TimingsTraceAndSlog.newAsyncLog();
                traceLog.traceBegin(START_BLOB_STORE_SERVICE);
                mSystemServiceManager.startService(BLOB_STORE_MANAGER_SERVICE_CLASS);
                traceLog.traceEnd();
            }, START_BLOB_STORE_SERVICE);

            // Dreams (interactive idle-time views, a/k/a screen savers, and doze mode)
            t.traceBegin("StartDreamManager");
            mSystemServiceManager.startService(DreamManagerService.class);
@@ -2039,10 +2048,6 @@ public final class SystemServer {
        mSystemServiceManager.startService(ClipboardService.class);
        t.traceEnd();

        t.traceBegin("StartBlobStoreManagerService");
        mSystemServiceManager.startService(BLOB_STORE_MANAGER_SERVICE_CLASS);
        t.traceEnd();

        t.traceBegin("AppServiceManager");
        mSystemServiceManager.startService(AppBindingService.Lifecycle.class);
        t.traceEnd();
@@ -2160,6 +2165,9 @@ public final class SystemServer {
        mSystemServiceManager.startService(APP_SEARCH_MANAGER_SERVICE_CLASS);
        t.traceEnd();

        ConcurrentUtils.waitForFutureNoInterrupt(mBlobStoreServiceStart,
                START_BLOB_STORE_SERVICE);

        // These are needed to propagate to the runnable below.
        final NetworkManagementService networkManagementF = networkManagement;
        final NetworkStatsService networkStatsF = networkStats;