
The stacktrace unit test was flaking on arm32; my theory is that this happened when the thread whose stack we were dumping was doing a system call inside `params->deadlock_start_event.Set();` in ThreadFunction(). (This would be a problem because, according to the comment at the bottom of the file, "stack traces originating from kernel space do not include user space stack traces for ARM32.") Attempt to solve this problem by spinning on an atomic flag instead, since this involve no system calls. And add a short sleep to the main thread, to give the other thread time to get from the barrier to the thing it's actually supposed to deadlock on. Bug: webrtc:10420 Change-Id: I4c6392157c8a06c64cb11146ffe9368e5bade6fc Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128340 Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27158}
This directory holds a Java implementation of the webrtc::PeerConnection API, as well as the JNI glue C++ code that lets the Java implementation reuse the C++ implementation of the same API. To build the Java API and related tests, make sure you have a WebRTC checkout with Android specific parts. This can be used for linux development as well by configuring gn appropriately, as it is a superset of the webrtc checkout: fetch --nohooks webrtc_android gclient sync You also must generate GN projects with: --args='target_os="android" target_cpu="arm"' More information on getting the code, compiling and running the AppRTCMobile app can be found at: https://webrtc.org/native-code/android/ To use the Java API, start by looking at the public interface of org.webrtc.PeerConnection{,Factory} and the org.webrtc.PeerConnectionTest. To understand the implementation of the API, see the native code in src/jni/pc/.