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

Commit 42e3ba78 authored by Emilian Peev's avatar Emilian Peev
Browse files

Camera: Set device executor thread name

Set a specific thread name for the executor service
instead of using the default generated thread pool
name.
Additionally use the same default thread factory.

Bug: 359709863
Flag: com.android.internal.camera.flags.single_thread_executor_naming
Test: Camera CTS

Change-Id: I6d56ed0494040dbff2a983977aace57a2f6bdc31
parent b9fd5d02
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicBoolean;

/**
@@ -90,6 +91,17 @@ public class CameraDeviceImpl extends CameraDevice
    private final String TAG;
    private final boolean DEBUG = false;

    private static final ThreadFactory sThreadFactory = new ThreadFactory() {
        private static final ThreadFactory mFactory = Executors.defaultThreadFactory();

        @Override
        public Thread newThread(Runnable r) {
            Thread thread = mFactory.newThread(r);
            thread.setName("CameraDeviceExecutor");
            return thread;
        }
    };

    private static final int REQUEST_ID_NONE = -1;

    /**
@@ -354,7 +366,11 @@ public class CameraDeviceImpl extends CameraDevice
        mCameraId = cameraId;
        if (Flags.singleThreadExecutor()) {
            mDeviceCallback = new ClientStateCallback(executor, callback);
            if (Flags.singleThreadExecutorNaming()) {
                mDeviceExecutor = Executors.newSingleThreadExecutor(sThreadFactory);
            } else {
                mDeviceExecutor = Executors.newSingleThreadExecutor();
            }
        } else {
            mDeviceCallback = callback;
            mDeviceExecutor = executor;