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

Commit 2eebb7dd authored by Hongguang's avatar Hongguang
Browse files

Release locks when closing.

Bug: 218228680
Fix: 218228680
Test: atest android.media.tv.tuner.cts 20 times
Change-Id: I31d6c65d9fb7e512d6dfbc7080214a9a766b38fa
parent 472bc8d9
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -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;
            }
            synchronized (mCallbackLock) {
                mCallback = null;
                mExecutor = null;
            }
            nativeSharedClose();
            mIsClosed = true;
            mCallbackLock = null;
         }
    }
}