Commit a7137cb8 by huangdarwin Committed by Tofunmi Adigun-Hameed

Effect: Remove extra wait on taskExecutor release()

This future.get() duplicates the wait done in
singleThreadExecutorService.awaitTermination(). If awaitTermination times out, this future.get() would also result in unnecessary blocking.

PiperOrigin-RevId: 536442153
(cherry picked from commit d7f4fea0b9d1be3f5d0211dc50b0f1fbaec05564)
parent d822e3cc
...@@ -23,7 +23,6 @@ import com.google.android.exoplayer2.util.VideoFrameProcessingException; ...@@ -23,7 +23,6 @@ import com.google.android.exoplayer2.util.VideoFrameProcessingException;
import com.google.android.exoplayer2.util.VideoFrameProcessor; import com.google.android.exoplayer2.util.VideoFrameProcessor;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.RejectedExecutionException;
...@@ -148,16 +147,13 @@ import java.util.concurrent.RejectedExecutionException; ...@@ -148,16 +147,13 @@ import java.util.concurrent.RejectedExecutionException;
shouldCancelTasks = true; shouldCancelTasks = true;
highPriorityTasks.clear(); highPriorityTasks.clear();
} }
Future<?> releaseFuture = Future<?> unused =
wrapTaskAndSubmitToExecutorService(releaseTask, /* isFlushOrReleaseTask= */ true); wrapTaskAndSubmitToExecutorService(releaseTask, /* isFlushOrReleaseTask= */ true);
singleThreadExecutorService.shutdown(); singleThreadExecutorService.shutdown();
try {
if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) { if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) {
listener.onError(new VideoFrameProcessingException("Release timed out")); listener.onError(
} new VideoFrameProcessingException(
releaseFuture.get(); "Release timed out. OpenGL resources may not be cleaned up properly."));
} catch (ExecutionException e) {
listener.onError(new VideoFrameProcessingException(e));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment