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

Commit 01c3ae19 authored by Christopher Tate's avatar Christopher Tate
Browse files

Make sure to deliver broadcasts immediately when waiting for idle

wait-for-broadcast-idle might make some deferred broadcasts immediately
deliverable.  Unfortuantely we were not necessarily making sure to
resume delivery as well.  Now we do.

Bug: 126596818
Test: manual
Test: tests/ActivityTests
Change-Id: I49303824cfcd0999b15a6b232b9596a4a28541c0
parent 244022a5
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -617,12 +617,10 @@ public class BroadcastDispatcher {
     * Cancel all current deferrals; that is, make all currently-deferred broadcasts
     * immediately deliverable.  Used by the wait-for-broadcast-idle mechanism.
     */
    public void cancelDeferrals() {
        synchronized (mLock) {
    public void cancelDeferralsLocked() {
        zeroDeferralTimes(mAlarmBroadcasts);
        zeroDeferralTimes(mDeferredBroadcasts);
    }
    }

    private static void zeroDeferralTimes(ArrayList<Deferrals> list) {
        final int num = list.size();
+4 −1
Original line number Diff line number Diff line
@@ -1870,7 +1870,10 @@ public final class BroadcastQueue {
    // Used by wait-for-broadcast-idle : fast-forward all current deferrals to
    // be immediately deliverable.
    void cancelDeferrals() {
        mDispatcher.cancelDeferrals();
        synchronized (mService) {
            mDispatcher.cancelDeferralsLocked();
            scheduleBroadcastsLocked();
        }
    }

    String describeState() {