From d8a124b758b92e26b4d801be5689a4bdce2ba0e0 Mon Sep 17 00:00:00 2001 From: Hongguang Date: Tue, 12 Apr 2022 09:19:36 -0700 Subject: [PATCH] Fix Filter callback race condition Bug: 225107597 Test: stress test Test: atest android.media.tv.tuner.cts Change-Id: I064095338009cdda8fc03780001b0b0534da4508 --- media/java/android/media/tv/tuner/filter/Filter.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/tv/tuner/filter/Filter.java b/media/java/android/media/tv/tuner/filter/Filter.java index a3e731b0ffa1a..d0973f4eb11f0 100644 --- a/media/java/android/media/tv/tuner/filter/Filter.java +++ b/media/java/android/media/tv/tuner/filter/Filter.java @@ -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; }