diff --git a/rtc_base/java/src/org/webrtc/ThreadUtils.java b/rtc_base/java/src/org/webrtc/ThreadUtils.java index f7c7b81a78..3cc80d39ca 100644 --- a/rtc_base/java/src/org/webrtc/ThreadUtils.java +++ b/rtc_base/java/src/org/webrtc/ThreadUtils.java @@ -143,17 +143,6 @@ public class ThreadUtils { return result; } - // TODO(sakal): This method is broken. It should be removed: crbug.com/webrtc/8456 - @SuppressWarnings("WaitNotInLoop") - public static void waitUninterruptibly(final Object object) { - executeUninterruptibly(new BlockingOperation() { - @Override - public void run() throws InterruptedException { - object.wait(); - } - }); - } - /** * Post |callable| to |handler| and wait for the result. */ diff --git a/sdk/android/src/java/org/webrtc/CameraCapturer.java b/sdk/android/src/java/org/webrtc/CameraCapturer.java index 3b442fb163..20596beb8b 100644 --- a/sdk/android/src/java/org/webrtc/CameraCapturer.java +++ b/sdk/android/src/java/org/webrtc/CameraCapturer.java @@ -350,7 +350,13 @@ abstract class CameraCapturer implements CameraVideoCapturer { synchronized (stateLock) { while (sessionOpening) { Logging.d(TAG, "Stop capture: Waiting for session to open"); - ThreadUtils.waitUninterruptibly(stateLock); + try { + stateLock.wait(); + } catch (InterruptedException e) { + Logging.w(TAG, "Stop capture interrupted while waiting for the session to open."); + Thread.currentThread().interrupt(); + return; + } } if (currentSession != null) {