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

Commit 1d04d872 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "fix an issue where updates could starve transactions"

parents 34fa2d4f 22289364
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -44,8 +44,7 @@ void MessageBase::handleMessage(const Message&) {
// ---------------------------------------------------------------------------

MessageQueue::MessageQueue()
    : mLooper(new Looper(true)),
      mInvalidatePending(0)
    : mLooper(new Looper(true))
{
}

@@ -54,17 +53,13 @@ MessageQueue::~MessageQueue() {

void MessageQueue::waitMessage() {
    do {
        // handle invalidate events first
        if (android_atomic_and(0, &mInvalidatePending) != 0)
            break;

        IPCThreadState::self()->flushCommands();

        int32_t ret = mLooper->pollOnce(-1);
        switch (ret) {
            case ALOOPER_POLL_WAKE:
                // we got woken-up there is work to do in the main loop
                continue;
                return;

            case ALOOPER_POLL_CALLBACK:
                // callback was handled, loop again
@@ -99,7 +94,6 @@ status_t MessageQueue::postMessage(
}

status_t MessageQueue::invalidate() {
    android_atomic_or(1, &mInvalidatePending);
    mLooper->wake();
    return NO_ERROR;
}
+0 −1
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ private:

class MessageQueue {
    sp<Looper> mLooper;
    volatile int32_t mInvalidatePending;

public:
    MessageQueue();