diff options
author | Dave Sparks <davidsparks@android.com> | 2010-03-01 19:29:58 -0800 |
---|---|---|
committer | Dave Sparks <davidsparks@android.com> | 2010-03-02 12:35:20 -0800 |
commit | 16433e2fe309f759fec3266db56232f55114beb2 (patch) | |
tree | 2ad865677ad3d7d3efd0c4d67b6e206172a7bf45 /media/libmediaplayerservice | |
parent | 14b60e747cdf16b79bb755b42dd766348c4f1880 (diff) | |
download | frameworks_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.cpp | 3 |
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(); } |