Merge "audioflinger: do not call onTearDown() in threadLoop_exit()" into oc-mr1-dev am: 7d7d3210f5
am: cca1e69caf
Change-Id: I05a463127907ce5dab0c3e8bbd8c73ff4a3e0e61
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 490f167..9544e5d 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -8153,10 +8153,8 @@
void AudioFlinger::MmapThread::threadLoop_exit()
{
- sp<MmapStreamCallback> callback = mCallback.promote();
- if (callback != 0) {
- callback->onTearDown();
- }
+ // Do not call callback->onTearDown() because it is redundant for thread exit
+ // and because it can cause a recursive mutex lock on stop().
}
status_t AudioFlinger::MmapThread::setSyncEvent(const sp<SyncEvent>& event __unused)