summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-09-20 22:05:38 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-20 22:05:39 +0000
commit4b701cc041d635e5ec56e382043a4c5d01aedd80 (patch)
treed4ac7bc04d6de49d02fa90eed1049120a7b3ac51 /media
parent3b3cfcfa272c8e3e16c89765b8817f5a8de0c505 (diff)
parente2773bb17bc5d01e05a77b8913539575ebd04500 (diff)
downloadframeworks_av-4b701cc041d635e5ec56e382043a4c5d01aedd80.zip
frameworks_av-4b701cc041d635e5ec56e382043a4c5d01aedd80.tar.gz
frameworks_av-4b701cc041d635e5ec56e382043a4c5d01aedd80.tar.bz2
Merge "Revert "Workaround slow AudioTrack destruction"" into klp-dev
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/SoundPool.cpp23
1 files changed, 0 insertions, 23 deletions
diff --git a/media/libmedia/SoundPool.cpp b/media/libmedia/SoundPool.cpp
index 37b400c..5239b2f 100644
--- a/media/libmedia/SoundPool.cpp
+++ b/media/libmedia/SoundPool.cpp
@@ -537,18 +537,6 @@ void SoundChannel::init(SoundPool* soundPool)
mSoundPool = soundPool;
}
-// This class is used to destroy a RefBase asynchronously
-class AsyncDestructThread : public Thread
-{
-public:
- AsyncDestructThread(sp<RefBase> refBase) : mRefBase(refBase) { }
-protected:
- virtual ~AsyncDestructThread() { }
-private:
- virtual bool threadLoop() { return false; }
- const sp<RefBase> mRefBase;
-};
-
// call with sound pool lock held
void SoundChannel::play(const sp<Sample>& sample, int nextChannelID, float leftVolume,
float rightVolume, int priority, int loop, float rate)
@@ -653,17 +641,6 @@ exit:
if (status != NO_ERROR) {
mAudioTrack.clear();
}
- // FIXME AudioTrack destruction should not be slow
- if (oldTrack != 0) {
- // must be a raw reference to avoid a race after run()
- AsyncDestructThread *adt = new AsyncDestructThread(oldTrack);
- // guaranteed to not run destructor
- oldTrack.clear();
- // after the run(), adt thread will hold a strong reference to oldTrack,
- // and the only strong reference to itself
- adt->run("AsyncDestruct");
- // do not delete adt here: adt thread destroys itself, and oldTrack if needed
- }
}
void SoundChannel::nextEvent()