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 |
||
---|---|---|
.. | ||
carbonvideorenderer.cc | ||
carbonvideorenderer.h | ||
deviceinfo.h | ||
devicemanager_unittest.cc | ||
devicemanager.cc | ||
devicemanager.h | ||
dummydevicemanager_unittest.cc | ||
dummydevicemanager.cc | ||
dummydevicemanager.h | ||
fakedevicemanager.h | ||
filevideocapturer_unittest.cc | ||
filevideocapturer.cc | ||
filevideocapturer.h | ||
gdivideorenderer.cc | ||
gdivideorenderer.h | ||
gtkvideorenderer.cc | ||
gtkvideorenderer.h | ||
iosdeviceinfo.cc | ||
libudevsymboltable.cc | ||
libudevsymboltable.h | ||
linuxdeviceinfo.cc | ||
linuxdevicemanager.cc | ||
linuxdevicemanager.h | ||
macdeviceinfo.cc | ||
macdevicemanager.cc | ||
macdevicemanager.h | ||
macdevicemanagermm.mm | ||
mobiledevicemanager.cc | ||
v4llookup.cc | ||
v4llookup.h | ||
videorendererfactory.h | ||
win32deviceinfo.cc | ||
win32devicemanager.cc | ||
win32devicemanager.h | ||
yuvframescapturer.cc | ||
yuvframescapturer.h |