
Android's JVM requires threads to detach before they exit, but ONLY if they needed to AttachCurrentThread. Conversly, threads that were attached by the JVM (e.g. the result of making a native call from Java) must NOT be detached by the application. This is bug 2441. The fix for the above is to only pthread_setspecific() for threads that Attach(), not for already-attached threads. To ensure that we only detach Attached threads, added a GetEnv() call to ThreadDestructor(), which revealed that Oracle's JVM can overly-eagerly clear TLS accounting data, effectively detaching threads without their consent at shutdown. Work around this with a specific check. To guard against (some) regression, added a variant of PeerConnectionTest that runs on a non-main thread. This revealed a bug in LinuxDeviceManager which implicitly assumes its talk_base::Thread has already been initialized. Fixed that here too. BUG=2441 R=henrike@webrtc.org Review URL: https://webrtc-codereview.appspot.com/8759004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5567 4adac7df-926f-26a2-2b94-8c16560cd09d
Description
No description provided
Languages
C++
76%
C
16%
Python
2.3%
Java
2.1%
Objective-C++
1.5%
Other
1.9%