From b6755ab6df946af2ceabd657f559b817276141df Mon Sep 17 00:00:00 2001 From: henrika Date: Thu, 19 Nov 2015 02:43:11 -0800 Subject: [PATCH] Revert of Adding thread timeout for audio recorer thread in Java (patchset #2 id:20001 of https://codereview.webrtc.org/1444313002/ ) Reason for revert: Reverting since this fix might hide real issue and the reported root problem seems extremely rare. Original issue's description: > Adding thread timeout for audio recorer thread in Java > > BUG=NONE > > Committed: https://crrev.com/fd614c2149c7985bd83df809df71d0d60e5a8f74 > Cr-Commit-Position: refs/heads/master@{#10671} TBR=magjed@webrtc.org,tommi@webrtc.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=NONE Review URL: https://codereview.webrtc.org/1459123002 Cr-Commit-Position: refs/heads/master@{#10707} --- .../java/android}/org/webrtc/ThreadUtils.java | 31 ++++++++++++++----- talk/libjingle.gyp | 2 +- .../webrtc/voiceengine/WebRtcAudioRecord.java | 9 ++++-- 3 files changed, 31 insertions(+), 11 deletions(-) rename {webrtc/base/java/src => talk/app/webrtc/java/android}/org/webrtc/ThreadUtils.java (78%) 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. + } } } }