Revert "Workaround slow AudioTrack destruction"

This reverts commit 8bbbd7da02fac3de40139af19f7cf7a7cc3cc824.

Change-Id: I269a6c445cbce33451b6a9e74223e36e6abbdbe0
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 @@
     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 @@
     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()