summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorDave Sparks <davidsparks@android.com>2010-03-01 19:29:58 -0800
committerDave Sparks <davidsparks@android.com>2010-03-02 12:35:20 -0800
commit16433e2fe309f759fec3266db56232f55114beb2 (patch)
tree2ad865677ad3d7d3efd0c4d67b6e206172a7bf45 /media/libmediaplayerservice
parent14b60e747cdf16b79bb755b42dd766348c4f1880 (diff)
downloadframeworks_base-16433e2fe309f759fec3266db56232f55114beb2.zip
frameworks_base-16433e2fe309f759fec3266db56232f55114beb2.tar.gz
frameworks_base-16433e2fe309f759fec3266db56232f55114beb2.tar.bz2
Add locking to signal in AudioCache::notify(). Bug 2317844.
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index c26d682..6332f70 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();
}