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

Commit 3d79f1ce authored by Simon Wilson's avatar Simon Wilson Committed by Android Git Automerger
Browse files

am edc68a00: Merge "Attempt to reduce problems from issue #3183612" into gingerbread

* commit 'edc68a00':
  Attempt to reduce problems from issue #3183612
parents b13581a9 edc68a00
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.os;

import android.util.Config;
import android.util.Log;
import android.util.Printer;

/**
@@ -106,6 +107,12 @@ public class Looper {
    public static final void loop() {
        Looper me = myLooper();
        MessageQueue queue = me.mQueue;
        
        // Make sure the identity of this thread is that of the local process,
        // and keep track of what that identity token actually is.
        Binder.clearCallingIdentity();
        final long ident = Binder.clearCallingIdentity();
        
        while (true) {
            Message msg = queue.next(); // might block
            //if (!me.mRun) {
@@ -124,6 +131,17 @@ public class Looper {
                if (me.mLogging!= null) me.mLogging.println(
                        "<<<<< Finished to    " + msg.target + " "
                        + msg.callback);
                
                // Make sure that during the course of dispatching the
                // identity of the thread wasn't corrupted.
                final long newIdent = Binder.clearCallingIdentity();
                if (ident != newIdent) {
                    Log.wtf("Looper", "Thread identity changed from 0x"
                            + Long.toHexString(ident) + " to 0x"
                            + Long.toHexString(newIdent) + " while dispatching to "
                            + msg.target + " " + msg.callback + " what=" + msg.what);
                }
                
                msg.recycle();
            }
        }