Bug 897123 - Make GeckoAppShell.pumpMessageLoop waste less CPU time r=jchen

This commit is contained in:
Chris Kitching
2013-07-26 12:02:00 -07:00
parent 964346df5b
commit cf37dadec5
4 changed files with 31 additions and 22 deletions

View File

@@ -297,7 +297,7 @@ public class GeckoAppShell
// Preparation for pumpMessageLoop()
MessageQueue.IdleHandler idleHandler = new MessageQueue.IdleHandler() {
@Override public boolean queueIdle() {
Handler geckoHandler = ThreadUtils.getGeckoHandler();
final Handler geckoHandler = ThreadUtils.sGeckoHandler;
Message idleMsg = Message.obtain(geckoHandler);
// Use |Message.obj == GeckoHandler| to identify our "queue is empty" message
idleMsg.obj = geckoHandler;
@@ -2465,12 +2465,12 @@ public class GeckoAppShell
}
public static boolean pumpMessageLoop() {
Handler geckoHandler = ThreadUtils.getGeckoHandler();
MessageQueue mq = Looper.myQueue();
Message msg = getNextMessageFromQueue(mq);
Handler geckoHandler = ThreadUtils.sGeckoHandler;
Message msg = getNextMessageFromQueue(ThreadUtils.sGeckoQueue);
if (msg == null)
return false;
if (msg.getTarget() == geckoHandler && msg.obj == geckoHandler) {
if (msg.obj == geckoHandler && msg.getTarget() == geckoHandler) {
// Our "queue is empty" message; see runGecko()
msg.recycle();
return false;