Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(870)

Unified Diff: talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java

Issue 1368093003: Android SurfaceTextureHelper: Don't wait for pending frames in disconnect() (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased and added more comments Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java
diff --git a/talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java b/talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java
index 9ab38210d4b1e62b1f6d577d936c134624fbdec0..a20a7391c2df36a9acb5e3cffbfb6b1f7fe2df3b 100644
--- a/talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java
+++ b/talk/app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java
@@ -35,7 +35,6 @@ import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.SystemClock;
-import android.util.Log;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -159,20 +158,7 @@ final class SurfaceTextureHelper {
}
}
});
- boolean wasInterrupted = true;
- while(true) {
- try {
- barrier.await();
- break;
- } catch (InterruptedException e) {
- // Someone is asking us to return early at our convenience. We must wait until the
- // |isQuitting| flag has been set but we should preserve the information and pass it along.
- wasInterrupted = true;
- }
- }
- if (wasInterrupted) {
- Thread.currentThread().interrupt();
- }
+ ThreadUtils.awaitUninterruptibly(barrier);
}
private void tryDeliverTextureFrame() {
@@ -195,18 +181,15 @@ final class SurfaceTextureHelper {
}
private void release() {
+ if (Thread.currentThread() != thread) {
+ throw new IllegalStateException("Wrong thread.");
+ }
if (isTextureInUse || !isQuitting) {
throw new IllegalStateException("Unexpected release.");
}
- // Release GL resources on dedicated thread.
- handler.post(new Runnable() {
- @Override public void run() {
- GLES20.glDeleteTextures(1, new int[] {oesTextureId}, 0);
- surfaceTexture.release();
- eglBase.release();
- }
- });
- // Quit safely to make sure the clean-up posted above is executed.
+ GLES20.glDeleteTextures(1, new int[] {oesTextureId}, 0);
+ surfaceTexture.release();
+ eglBase.release();
thread.quitSafely();
}
}
« no previous file with comments | « talk/app/webrtc/java/android/org/webrtc/EglBase.java ('k') | talk/app/webrtc/java/android/org/webrtc/ThreadUtils.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698