From 16433e2fe309f759fec3266db56232f55114beb2 Mon Sep 17 00:00:00 2001 From: Dave Sparks Date: Mon, 1 Mar 2010 19:29:58 -0800 Subject: [PATCH] Add locking to signal in AudioCache::notify(). Bug 2317844. --- media/libmediaplayerservice/MediaPlayerService.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index c26d68274e601..6332f70801d66 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -1768,7 +1768,7 @@ ssize_t MediaPlayerService::AudioCache::write(const void* buffer, size_t size) status_t MediaPlayerService::AudioCache::wait() { Mutex::Autolock lock(mLock); - if (!mCommandComplete) { + while (!mCommandComplete) { mSignal.wait(mLock); } mCommandComplete = false; @@ -1805,6 +1805,7 @@ void MediaPlayerService::AudioCache::notify(void* cookie, int msg, int ext1, int } // wake up thread + Mutex::Autolock lock(mLock); p->mCommandComplete = true; p->mSignal.signal(); }