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

Commit b921d302 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fix a bug where timeouts would only be handled when a message was delivered

Change-Id: I98c69b129e75e065e61f47e54f0f855d9401b0dc
parent 1ae32bfe
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -91,19 +91,23 @@ sp<MessageBase> MessageQueue::waitMessage(nsecs_t timeout)
                    mMessages.remove(cur);
                    break;
                }
                if (timeout>=0 && timeoutTime < now) {
                    // we timed-out, return a NULL message
                    result = 0;
                    break;
                }
                nextEventTime = result->when;
                result = 0;
            }

            if (timeout >= 0 && nextEventTime > 0) {
            if (timeout >= 0) {
                if (timeoutTime < now) {
                    // we timed-out, return a NULL message
                    result = 0;
                    break;
                }
                if (nextEventTime > 0) {
                    if (nextEventTime > timeoutTime) {
                        nextEventTime = timeoutTime;
                    }
                } else {
                    nextEventTime = timeoutTime;
                }
            }

            if (nextEventTime >= 0) {