From 7b0ba1668872eb6336bd305f9893991c84a08462 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 11 Oct 2010 14:11:15 -0700 Subject: [PATCH] deliver invalidate messages AFTER other messages because invalidate messages were always handled first, they could prevent other messages to get through entirely. there is no real reason to handle invalidate messages first because the other messages are very uncommon and won't interfer with updates. Change-Id: Ib95cdf35a91407bd2f4d69dd082c5f546e1e0071 --- services/surfaceflinger/MessageQueue.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/services/surfaceflinger/MessageQueue.cpp b/services/surfaceflinger/MessageQueue.cpp index 4fb1e6133..aebe1b82d 100644 --- a/services/surfaceflinger/MessageQueue.cpp +++ b/services/surfaceflinger/MessageQueue.cpp @@ -72,14 +72,6 @@ sp MessageQueue::waitMessage(nsecs_t timeout) nsecs_t now = systemTime(); nsecs_t nextEventTime = -1; - // invalidate messages are always handled first - if (mInvalidate) { - mInvalidate = false; - mInvalidateMessage->when = now; - result = mInvalidateMessage; - break; - } - LIST::iterator cur(mMessages.begin()); if (cur != mMessages.end()) { result = *cur; @@ -95,6 +87,14 @@ sp MessageQueue::waitMessage(nsecs_t timeout) result = 0; } + // see if we have an invalidate message + if (mInvalidate) { + mInvalidate = false; + mInvalidateMessage->when = now; + result = mInvalidateMessage; + break; + } + if (timeout >= 0) { if (timeoutTime < now) { // we timed-out, return a NULL message