replicant-frameworks_native/libs/utils
Eric Laurent 15025254eb Fix issue 3302649.
The cause of the problem is that AudioTrack::start() can fail if it is called from a newly created
thread that has the same ID as the AudioTrack callback thread that has just been stopped and not yet exited.
This is possible as the thread ID used by the Thread class is not the TID.

The fix consists in clearing the thread ID before exiting the thread loop.

Change-Id: I8b5f6a63feeaeb9a01267380e85f6f1456e7aa01
2011-01-12 18:28:25 -08:00
..
tests Split UTF functions from String8/16 2010-11-12 15:53:40 -08:00
Android.mk Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
Asset.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
AssetDir.cpp
AssetManager.cpp
BackupData.cpp
BackupHelpers.cpp
BufferedTextOutput.cpp
CallStack.cpp
Debug.cpp
FileMap.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
Flattenable.cpp
Looper.cpp
misc.cpp
MODULE_LICENSE_APACHE2
NOTICE
ObbFile.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
Pool.cpp
PropertyMap.cpp Add initial support for cursor-based pointing devices. 2010-12-29 13:19:53 -08:00
README
RefBase.cpp
ResourceTypes.cpp Split UTF functions from String8/16 2010-11-12 15:53:40 -08:00
SharedBuffer.cpp
Static.cpp
StopWatch.cpp
StreamingZipInflater.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
String8.cpp Improve support for external keyboards. 2010-12-02 16:01:32 -08:00
String16.cpp Split UTF functions from String8/16 2010-11-12 15:53:40 -08:00
StringArray.cpp
SystemClock.cpp
TextOutput.cpp
Threads.cpp Fix issue 3302649. 2011-01-12 18:28:25 -08:00
Timers.cpp
Tokenizer.cpp Improve support for external keyboards. 2010-12-02 16:01:32 -08:00
Unicode.cpp Split UTF functions from String8/16 2010-11-12 15:53:40 -08:00
VectorImpl.cpp
ZipFileCRO.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
ZipFileRO.cpp Change assets to use 64-bit API 2010-12-08 11:21:30 -08:00
ZipUtils.cpp

Android Utility Function Library

If you need a feature that is native to Linux but not present on other
platforms, construct a platform-dependent implementation that shares
the Linux interface.  That way the actual device runs as "light" as
possible.

If that isn't feasible, create a system-independent interface and hide
the details.

The ultimate goal is *not* to create a super-duper platform abstraction
layer.  The goal is to provide an optimized solution for Linux with
reasonable implementations for other platforms.