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

Commit 0f9fc342 authored by JW Wang's avatar JW Wang
Browse files

Register and unregister might be out of order (5/n)

Calling unregisterHealthObserver() right after startObservingHealth()
will fail to unregister observers correctly because startObservingHealth()
do registration asynchronously.

Let's do unregistration asynchronously as well to keep things in order.

Bug: 178675924
Test: atest PackageWatchdogTest
Change-Id: I7dfea957fb88f0346cdeea20e626a728ec1a1325
parent f0541557
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -372,10 +372,12 @@ public class PackageWatchdog {
     * even from a previous boot.
     * even from a previous boot.
     */
     */
    public void unregisterHealthObserver(PackageHealthObserver observer) {
    public void unregisterHealthObserver(PackageHealthObserver observer) {
        mLongTaskHandler.post(() -> {
            synchronized (mLock) {
            synchronized (mLock) {
                mAllObservers.remove(observer.getName());
                mAllObservers.remove(observer.getName());
            }
            }
            syncState("unregistering observer: " + observer.getName());
            syncState("unregistering observer: " + observer.getName());
        });
    }
    }


    /**
    /**