Merge "Move close callback outside ProgramList lock" into tm-qpr-dev

This commit is contained in:
Weilin Xu
2022-10-27 18:02:21 +00:00
committed by Android (Google) Code Review

View File

@@ -160,6 +160,7 @@ public final class ProgramList implements AutoCloseable {
* Disables list updates and releases all resources. * Disables list updates and releases all resources.
*/ */
public void close() { public void close() {
OnCloseListener onCompleteListenersCopied = null;
synchronized (mLock) { synchronized (mLock) {
if (mIsClosed) return; if (mIsClosed) return;
mIsClosed = true; mIsClosed = true;
@@ -167,10 +168,14 @@ public final class ProgramList implements AutoCloseable {
mListCallbacks.clear(); mListCallbacks.clear();
mOnCompleteListeners.clear(); mOnCompleteListeners.clear();
if (mOnCloseListener != null) { if (mOnCloseListener != null) {
mOnCloseListener.onClose(); onCompleteListenersCopied = mOnCloseListener;
mOnCloseListener = null; mOnCloseListener = null;
} }
} }
if (onCompleteListenersCopied != null) {
onCompleteListenersCopied.onClose();
}
} }
void apply(Chunk chunk) { void apply(Chunk chunk) {