Merge "Attempt to reduce problems from issue #3183612" into gingerbread
This commit is contained in:
@ -17,6 +17,7 @@
|
|||||||
package android.os;
|
package android.os;
|
||||||
|
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.Printer;
|
import android.util.Printer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,6 +107,12 @@ public class Looper {
|
|||||||
public static final void loop() {
|
public static final void loop() {
|
||||||
Looper me = myLooper();
|
Looper me = myLooper();
|
||||||
MessageQueue queue = me.mQueue;
|
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) {
|
while (true) {
|
||||||
Message msg = queue.next(); // might block
|
Message msg = queue.next(); // might block
|
||||||
//if (!me.mRun) {
|
//if (!me.mRun) {
|
||||||
@ -124,6 +131,17 @@ public class Looper {
|
|||||||
if (me.mLogging!= null) me.mLogging.println(
|
if (me.mLogging!= null) me.mLogging.println(
|
||||||
"<<<<< Finished to " + msg.target + " "
|
"<<<<< Finished to " + msg.target + " "
|
||||||
+ msg.callback);
|
+ 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();
|
msg.recycle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user