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

Commit 7c518d6c authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

AudioService: Add the AudioDeviceBroker's message queue to the dump

Clogged queue means device-related requests will not be served.

Example dump snippet:

AudioDeviceBroker:
  Message handler (watch for unhandled messages):
    Handler (com.android.server.audio.AudioDeviceBroker$BrokerHandler) {753fed2} @ 359741
      Looper (AudioDeviceBroker, tid 115) {ed3aba3}
        (Total messages: 0, polling=true, quitting=false)

Bug: 135763139
Test: adb shell dumpsys audio
Change-Id: If2130a4bd8bd9536df01656fe1a8f94548912ab9
parent d8edd0de
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -40,9 +40,11 @@ import android.os.PowerManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.util.Log;
import android.util.PrintWriterPrinter;

import com.android.internal.annotations.GuardedBy;

import java.io.PrintWriter;

/** @hide */
/*package*/ final class AudioDeviceBroker {
@@ -597,6 +599,15 @@ import com.android.internal.annotations.GuardedBy;
        }
    }

    /*package*/ void dump(PrintWriter pw, String prefix) {
        if (mBrokerHandler != null) {
            pw.println(prefix + "Message handler (watch for unhandled messages):");
            mBrokerHandler.dump(new PrintWriterPrinter(pw), prefix + "  ");
        } else {
            pw.println("Message handler is null");
        }
    }

    //---------------------------------------------------------------------
    // Internal handling of messages
    // These methods are ALL synchronous, in response to message handling in BrokerHandler
+3 −2
Original line number Diff line number Diff line
@@ -6421,11 +6421,12 @@ public class AudioService extends IAudioService.Stub

        dumpAudioPolicies(pw);
        mDynPolicyLogger.dump(pw);

        mPlaybackMonitor.dump(pw);

        mRecordMonitor.dump(pw);

        pw.println("\nAudioDeviceBroker:");
        mDeviceBroker.dump(pw, "  ");

        pw.println("\n");
        pw.println("\nEvent logs:");
        mModeLogger.dump(pw);