c2d75e0708
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 |
||
---|---|---|
.. | ||
webrtc |