Fix Filter callback race condition

Bug: 225107597
Test: stress test
Test: atest android.media.tv.tuner.cts
Change-Id: I064095338009cdda8fc03780001b0b0534da4508
This commit is contained in:
Hongguang
2022-04-12 09:19:36 -07:00
parent 27865be04c
commit d8a124b758

View File

@@ -560,6 +560,11 @@ public class Filter implements AutoCloseable {
*/
@Override
public void close() {
synchronized (mCallbackLock) {
mCallback = null;
mExecutor = null;
}
synchronized (mLock) {
if (mIsClosed) {
return;
@@ -568,8 +573,6 @@ public class Filter implements AutoCloseable {
if (res != Tuner.RESULT_SUCCESS) {
TunerUtils.throwExceptionForResult(res, "Failed to close filter.");
} else {
mCallback = null;
mExecutor = null;
mIsStarted = false;
mIsClosed = true;
}