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

Commit 94cac073 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Automatically trace messages on shared loopers." into nyc-dev

parents 03f1e026 74cd3de6
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -231,6 +231,18 @@ public class Handler {
        mAsynchronous = async;
    }

    /** {@hide} */
    public String getTraceName(Message message) {
        final StringBuilder sb = new StringBuilder();
        sb.append(getClass().getName()).append(": ");
        if (message.callback != null) {
            sb.append(message.callback.getClass().getName());
        } else {
            sb.append("#").append(message.what);
        }
        return sb.toString();
    }

    /**
     * Returns a string representing the name of the specified message.
     * The default implementation will either return the class name of the
@@ -739,8 +751,8 @@ public class Handler {
        message.callback.run();
    }

    final MessageQueue mQueue;
    final Looper mLooper;
    final MessageQueue mQueue;
    final Callback mCallback;
    final boolean mAsynchronous;
    IMessenger mMessenger;
+18 −2
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ public final class Looper {
    final Thread mThread;

    private Printer mLogging;
    private long mTraceTag;

     /** Initialize the current thread as a looper.
      * This gives you a chance to create handlers that then reference
@@ -139,13 +140,23 @@ public final class Looper {
            }

            // This must be in a local variable, in case a UI event sets the logger
            Printer logging = me.mLogging;
            final Printer logging = me.mLogging;
            if (logging != null) {
                logging.println(">>>>> Dispatching to " + msg.target + " " +
                        msg.callback + ": " + msg.what);
            }

            final long traceTag = me.mTraceTag;
            if (traceTag != 0) {
                Trace.traceBegin(traceTag, msg.target.getTraceName(msg));
            }
            try {
                msg.target.dispatchMessage(msg);
            } finally {
                if (traceTag != 0) {
                    Trace.traceEnd(traceTag);
                }
            }

            if (logging != null) {
                logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);
@@ -208,6 +219,11 @@ public final class Looper {
        mLogging = printer;
    }

    /** {@hide} */
    public void setTraceTag(long traceTag) {
        mTraceTag = traceTag;
    }

    /**
     * Quits the looper.
     * <p>
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.internal.os;

import android.os.Handler;
import android.os.HandlerThread;
import android.os.Trace;

/**
 * Shared singleton background thread for each process.
@@ -34,6 +35,7 @@ public final class BackgroundThread extends HandlerThread {
        if (sInstance == null) {
            sInstance = new BackgroundThread();
            sInstance.start();
            sInstance.getLooper().setTraceTag(Trace.TRACE_TAG_ACTIVITY_MANAGER);
            sHandler = new Handler(sInstance.getLooper());
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server;

import android.os.Handler;
import android.os.Trace;

/**
 * Shared singleton foreground thread for the system.  This is a thread for
@@ -36,6 +37,7 @@ public final class DisplayThread extends ServiceThread {
        if (sInstance == null) {
            sInstance = new DisplayThread();
            sInstance.start();
            sInstance.getLooper().setTraceTag(Trace.TRACE_TAG_ACTIVITY_MANAGER);
            sHandler = new Handler(sInstance.getLooper());
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server;

import android.os.Handler;
import android.os.Trace;

/**
 * Shared singleton foreground thread for the system.  This is a thread for regular
@@ -38,6 +39,7 @@ public final class FgThread extends ServiceThread {
        if (sInstance == null) {
            sInstance = new FgThread();
            sInstance.start();
            sInstance.getLooper().setTraceTag(Trace.TRACE_TAG_ACTIVITY_MANAGER);
            sHandler = new Handler(sInstance.getLooper());
        }
    }
Loading