Merge "Quick fix for possible deadlock in LMS" into rvc-dev am: 45b8146ae8 am: 98c1646443 am: 4ec5b2f0ff

Change-Id: I939ba1ae9f42a575553fb331d82ac7d946afa34d
This commit is contained in:
Automerger Merge Worker
2020-03-03 03:23:00 +00:00

View File

@@ -2562,22 +2562,28 @@ public class LocationManager {
mRemoteCancellationSignal = remoteCancellationSignal;
}
public synchronized void cancel() {
mExecutor = null;
mConsumer = null;
public void cancel() {
ICancellationSignal cancellationSignal;
synchronized (this) {
mExecutor = null;
mConsumer = null;
if (mAlarmManager != null) {
mAlarmManager.cancel(this);
mAlarmManager = null;
if (mAlarmManager != null) {
mAlarmManager.cancel(this);
mAlarmManager = null;
}
// ensure only one cancel event will go through
cancellationSignal = mRemoteCancellationSignal;
mRemoteCancellationSignal = null;
}
if (mRemoteCancellationSignal != null) {
if (cancellationSignal != null) {
try {
mRemoteCancellationSignal.cancel();
cancellationSignal.cancel();
} catch (RemoteException e) {
// ignore
}
mRemoteCancellationSignal = null;
}
}