| Index: talk/app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java
|
| diff --git a/talk/app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java b/talk/app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java
|
| index 7d954852cd9d10d72dea9790b9de97484a6ae126..6bc8189cd85e80c5fb1987fb297b214ec1a68a0d 100644
|
| --- a/talk/app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java
|
| +++ b/talk/app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java
|
| @@ -39,7 +39,10 @@ public class PeerConnectionFactory {
|
| System.loadLibrary("jingle_peerconnection_so");
|
| }
|
|
|
| + private static final String TAG = "PeerConnectionFactory";
|
| private final long nativeFactory;
|
| + private static Thread workerThread;
|
| + private static Thread signalingThread;
|
|
|
| public static class Options {
|
| // Keep in sync with webrtc/base/network.h!
|
| @@ -136,7 +139,38 @@ public class PeerConnectionFactory {
|
| }
|
|
|
| public void dispose() {
|
| - freeFactory(nativeFactory);
|
| + nativeFreeFactory(nativeFactory);
|
| + signalingThread = null;
|
| + workerThread = null;
|
| + }
|
| +
|
| + public void threadsCallbacks() {
|
| + nativeThreadsCallbacks(nativeFactory);
|
| + }
|
| +
|
| + public static void printStackTraces() {
|
| + if (workerThread != null) {
|
| + Logging.d(TAG, "Worker thread stacks trace:");
|
| + for (StackTraceElement stackTrace : workerThread.getStackTrace()) {
|
| + Logging.d(TAG, stackTrace.toString());
|
| + }
|
| + }
|
| + if (signalingThread != null) {
|
| + Logging.d(TAG, "Signaling thread stacks trace:");
|
| + for (StackTraceElement stackTrace : signalingThread.getStackTrace()) {
|
| + Logging.d(TAG, stackTrace.toString());
|
| + }
|
| + }
|
| + }
|
| +
|
| + private static void onWorkerThreadReady() {
|
| + workerThread = Thread.currentThread();
|
| + Logging.d(TAG, "onWorkerThreadReady");
|
| + }
|
| +
|
| + private static void onSignalingThreadReady() {
|
| + signalingThread = Thread.currentThread();
|
| + Logging.d(TAG, "onSignalingThreadReady");
|
| }
|
|
|
| private static native long nativeCreatePeerConnectionFactory();
|
| @@ -169,5 +203,7 @@ public class PeerConnectionFactory {
|
| private static native void nativeSetVideoHwAccelerationOptions(
|
| long nativeFactory, Object renderEGLContext);
|
|
|
| - private static native void freeFactory(long nativeFactory);
|
| + private static native void nativeThreadsCallbacks(long nativeFactory);
|
| +
|
| + private static native void nativeFreeFactory(long nativeFactory);
|
| }
|
|
|