diff --git a/webrtc/base/java/src/org/webrtc/ThreadUtils.java b/talk/app/webrtc/java/android/org/webrtc/ThreadUtils.java similarity index 78% rename from webrtc/base/java/src/org/webrtc/ThreadUtils.java rename to talk/app/webrtc/java/android/org/webrtc/ThreadUtils.java index 3536fec658..bd4fa44b9a 100644 --- a/webrtc/base/java/src/org/webrtc/ThreadUtils.java +++ b/talk/app/webrtc/java/android/org/webrtc/ThreadUtils.java @@ -1,11 +1,28 @@ /* - * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. + * libjingle + * Copyright 2015 Google Inc. * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.webrtc; @@ -17,7 +34,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -public final class ThreadUtils { +final class ThreadUtils { /** * Utility class to be used for checking that a method is called on the correct thread. */ diff --git a/talk/libjingle.gyp b/talk/libjingle.gyp index 9710b758b8..d86361014e 100755 --- a/talk/libjingle.gyp +++ b/talk/libjingle.gyp @@ -158,11 +158,11 @@ 'app/webrtc/java/android/org/webrtc/RendererCommon.java', 'app/webrtc/java/android/org/webrtc/SurfaceTextureHelper.java', 'app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java', + 'app/webrtc/java/android/org/webrtc/ThreadUtils.java', 'app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java', 'app/webrtc/java/android/org/webrtc/VideoRendererGui.java', 'app/webrtc/java/src/org/webrtc/MediaCodecVideoDecoder.java', 'app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java', - '<(webrtc_base_dir)/java/src/org/webrtc/ThreadUtils.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java', diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java index a6ae9fc480..ff77635843 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java @@ -23,7 +23,6 @@ import android.os.Process; import android.os.SystemClock; import org.webrtc.Logging; -import org.webrtc.ThreadUtils; class WebRtcAudioRecord { private static final boolean DEBUG = false; @@ -104,8 +103,12 @@ class WebRtcAudioRecord { public void joinThread() { keepAlive = false; - if (!ThreadUtils.joinUninterruptibly(this, 1000)) { - Logging.e(TAG, "Timeout in WebRtcAudioRecord.joinThread()"); + while (isAlive()) { + try { + join(); + } catch (InterruptedException e) { + // Ignore. + } } } }