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
This commit is contained in:
@@ -372,10 +372,12 @@ public class PackageWatchdog {
|
||||
* even from a previous boot.
|
||||
*/
|
||||
public void unregisterHealthObserver(PackageHealthObserver observer) {
|
||||
synchronized (mLock) {
|
||||
mAllObservers.remove(observer.getName());
|
||||
}
|
||||
syncState("unregistering observer: " + observer.getName());
|
||||
mLongTaskHandler.post(() -> {
|
||||
synchronized (mLock) {
|
||||
mAllObservers.remove(observer.getName());
|
||||
}
|
||||
syncState("unregistering observer: " + observer.getName());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user