summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2009-12-07 12:37:02 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-12-07 12:37:02 -0800
commit5252f65e341870fdc197ab8d4b773c8d123076f0 (patch)
tree3f3023f46d3175338b61a81c9503d308c0670f2d
parenta4dde1da5f8663fea34fe538900e78611cb48f4f (diff)
parent0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8 (diff)
downloadframeworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.zip
frameworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.tar.gz
frameworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.tar.bz2
am 0a08029f: Fix issue 2306779: Runtime restart - Init failed at android.media.ToneGenerator.
Merge commit '0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8' into eclair-plus-aosp * commit '0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8': Fix issue 2306779: Runtime restart - Init failed at android.media.ToneGenerator.
-rw-r--r--libs/audioflinger/AudioFlinger.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp
index f3f6e4f..2024cc0 100644
--- a/libs/audioflinger/AudioFlinger.cpp
+++ b/libs/audioflinger/AudioFlinger.cpp
@@ -1111,7 +1111,6 @@ void AudioFlinger::PlaybackThread::destroyTrack_l(const sp<Track>& track)
{
track->mState = TrackBase::TERMINATED;
if (mActiveTracks.indexOf(track) < 0) {
- LOGV("remove track (%d) and delete from mixer", track->name());
mTracks.remove(track);
deleteTrackName_l(track->name());
}
@@ -1511,6 +1510,7 @@ int AudioFlinger::MixerThread::getTrackName_l()
// deleteTrackName_l() must be called with ThreadBase::mLock held
void AudioFlinger::MixerThread::deleteTrackName_l(int name)
{
+ LOGV("remove track (%d) and delete from mixer", name);
mAudioMixer->deleteTrackName(name);
}
@@ -1922,6 +1922,9 @@ AudioFlinger::DuplicatingThread::DuplicatingThread(const sp<AudioFlinger>& audio
AudioFlinger::DuplicatingThread::~DuplicatingThread()
{
+ for (size_t i = 0; i < mOutputTracks.size(); i++) {
+ mOutputTracks[i]->destroy();
+ }
mOutputTracks.clear();
}
@@ -2044,17 +2047,6 @@ bool AudioFlinger::DuplicatingThread::threadLoop()
outputTracks.clear();
}
- { // scope for the mLock
-
- Mutex::Autolock _l(mLock);
- if (!mStandby) {
- LOGV("DuplicatingThread() exiting out of standby");
- for (size_t i = 0; i < mOutputTracks.size(); i++) {
- mOutputTracks[i]->destroy();
- }
- }
- }
-
return false;
}