Release locks when closing.

Bug: 218228680
Fix: 218228680
Test: atest android.media.tv.tuner.cts 20 times
Change-Id: I31d6c65d9fb7e512d6dfbc7080214a9a766b38fa
This commit is contained in:
Hongguang
2022-02-07 18:35:49 -08:00
parent 472bc8d932
commit 2eebb7dd3f

View File

@@ -52,10 +52,10 @@ public final class SharedFilter implements AutoCloseable {
private long mNativeContext;
private SharedFilterCallback mCallback;
private Executor mExecutor;
private final Object mCallbackLock = new Object();
private Object mCallbackLock = null;
private boolean mIsClosed = false;
private boolean mIsAccessible = true;
private final Object mLock = new Object();
private Object mLock = null;
private native int nativeStartSharedFilter();
private native int nativeStopSharedFilter();
@@ -64,7 +64,10 @@ public final class SharedFilter implements AutoCloseable {
private native int nativeSharedClose();
// Called by JNI
private SharedFilter() {}
private SharedFilter() {
mCallbackLock = new Object();
mLock = new Object();
}
private void onFilterStatus(int status) {
synchronized (mLock) {
@@ -199,10 +202,13 @@ public final class SharedFilter implements AutoCloseable {
if (mIsClosed) {
return;
}
mCallback = null;
mExecutor = null;
synchronized (mCallbackLock) {
mCallback = null;
mExecutor = null;
}
nativeSharedClose();
mIsClosed = true;
mCallbackLock = null;
}
}
}