From 1c172e0bed7937282fca630efde497319f2ae82a Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Tue, 30 May 2023 17:29:19 +0000 Subject: [PATCH] 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 --- .../effect/VideoFrameProcessingTaskExecutor.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java b/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java index 274aabea2e..be1bb6a64e 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java @@ -24,7 +24,6 @@ import androidx.media3.common.VideoFrameProcessor; import androidx.media3.common.util.UnstableApi; import java.util.ArrayDeque; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionException; @@ -150,16 +149,13 @@ import java.util.concurrent.RejectedExecutionException; shouldCancelTasks = true; highPriorityTasks.clear(); } - Future releaseFuture = + Future unused = wrapTaskAndSubmitToExecutorService(releaseTask, /* isFlushOrReleaseTask= */ true); singleThreadExecutorService.shutdown(); - try { - if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) { - listener.onError(new VideoFrameProcessingException("Release timed out")); - } - releaseFuture.get(); - } catch (ExecutionException e) { - listener.onError(new VideoFrameProcessingException(e)); + if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) { + listener.onError( + new VideoFrameProcessingException( + "Release timed out. OpenGL resources may not be cleaned up properly.")); } }