| Index: webrtc/examples/androidjunit/src/org/appspot/apprtc/util/RobolectricLooperExecutor.java
|
| diff --git a/webrtc/examples/androidjunit/src/org/appspot/apprtc/util/RobolectricLooperExecutor.java b/webrtc/examples/androidjunit/src/org/appspot/apprtc/util/RobolectricLooperExecutor.java
|
| deleted file mode 100644
|
| index 19d595d3042fb1a5b654b8c55fa549da192f6a56..0000000000000000000000000000000000000000
|
| --- a/webrtc/examples/androidjunit/src/org/appspot/apprtc/util/RobolectricLooperExecutor.java
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -/*
|
| - * Copyright 2016 The WebRTC Project Authors. All rights reserved.
|
| - *
|
| - * 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.
|
| - */
|
| -
|
| -package org.appspot.apprtc.util;
|
| -
|
| -import java.util.concurrent.ArrayBlockingQueue;
|
| -import java.util.concurrent.BlockingQueue;
|
| -
|
| -import static org.junit.Assert.fail;
|
| -
|
| -/**
|
| - * LooperExecutor that doesn't use Looper because its implementation in Robolectric is not suited
|
| - * for our needs. Also implements executeAndWait that can be used to wait until the runnable has
|
| - * been executed.
|
| - */
|
| -public class RobolectricLooperExecutor extends LooperExecutor {
|
| - private volatile boolean running = false;
|
| - private static final int RUNNABLE_QUEUE_CAPACITY = 256;
|
| - private final BlockingQueue<Runnable> runnableQueue
|
| - = new ArrayBlockingQueue<>(RUNNABLE_QUEUE_CAPACITY);
|
| - private long threadId;
|
| -
|
| - /**
|
| - * Executes the runnable passed to the constructor and sets isDone flag afterwards.
|
| - */
|
| - private static class ExecuteAndWaitRunnable implements Runnable {
|
| - public boolean isDone = false;
|
| - private final Runnable runnable;
|
| -
|
| - ExecuteAndWaitRunnable(Runnable runnable) {
|
| - this.runnable = runnable;
|
| - }
|
| -
|
| - @Override
|
| - public void run() {
|
| - runnable.run();
|
| -
|
| - synchronized (this) {
|
| - isDone = true;
|
| - notifyAll();
|
| - }
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void run() {
|
| - threadId = Thread.currentThread().getId();
|
| -
|
| - while (running) {
|
| - final Runnable runnable;
|
| -
|
| - try {
|
| - runnable = runnableQueue.take();
|
| - } catch (InterruptedException e) {
|
| - if (running) {
|
| - fail(e.getMessage());
|
| - }
|
| - return;
|
| - }
|
| -
|
| - runnable.run();
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public synchronized void requestStart() {
|
| - if (running) {
|
| - return;
|
| - }
|
| - running = true;
|
| - start();
|
| - }
|
| -
|
| - @Override
|
| - public synchronized void requestStop() {
|
| - running = false;
|
| - interrupt();
|
| - }
|
| -
|
| - @Override
|
| - public synchronized void execute(Runnable runnable) {
|
| - try {
|
| - runnableQueue.put(runnable);
|
| - } catch (InterruptedException e) {
|
| - fail(e.getMessage());
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Queues runnable to be run and waits for it to be executed by the executor thread
|
| - */
|
| - public void executeAndWait(Runnable runnable) {
|
| - ExecuteAndWaitRunnable executeAndWaitRunnable = new ExecuteAndWaitRunnable(runnable);
|
| - execute(executeAndWaitRunnable);
|
| -
|
| - synchronized (executeAndWaitRunnable) {
|
| - while (!executeAndWaitRunnable.isDone) {
|
| - try {
|
| - executeAndWaitRunnable.wait();
|
| - } catch (InterruptedException e) {
|
| - fail(e.getMessage());
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public boolean checkOnLooperThread() {
|
| - return (Thread.currentThread().getId() == threadId);
|
| - }
|
| -}
|
|
|