diff options
author | Ricardo Garcia <rago@google.com> | 2014-07-24 15:48:24 -0700 |
---|---|---|
committer | Ricardo Garcia <rago@google.com> | 2014-07-24 17:22:40 -0700 |
commit | 05f2fdc1070c1c07af9e21760d4d2e06bebde55a (patch) | |
tree | 2d5f2db1f724005f976ad5bd1b9d5764d687e024 /services/audiopolicy/AudioPolicyService.cpp | |
parent | 81e50d0c782cc18eab4ef40ecd6c7f36df50fea5 (diff) | |
download | frameworks_av-05f2fdc1070c1c07af9e21760d4d2e06bebde55a.zip frameworks_av-05f2fdc1070c1c07af9e21760d4d2e06bebde55a.tar.gz frameworks_av-05f2fdc1070c1c07af9e21760d4d2e06bebde55a.tar.bz2 |
-Making sure mAudioCommands list is empty before going to sleep.
-Wake_lock release before sleeping or quitting threadLoop().
Change-Id: Icab53d7984a3ba3eaf13e514667b4d60f40cbcd6
Diffstat (limited to 'services/audiopolicy/AudioPolicyService.cpp')
-rw-r--r-- | services/audiopolicy/AudioPolicyService.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/audiopolicy/AudioPolicyService.cpp b/services/audiopolicy/AudioPolicyService.cpp index ae9cc35..7f14960 100644 --- a/services/audiopolicy/AudioPolicyService.cpp +++ b/services/audiopolicy/AudioPolicyService.cpp @@ -514,21 +514,23 @@ bool AudioPolicyService::AudioCommandThread::threadLoop() break; } } - // release delayed commands wake lock - if (mAudioCommands.isEmpty()) { - release_wake_lock(mName.string()); - } // release mLock before releasing strong reference on the service as // AudioPolicyService destructor calls AudioCommandThread::exit() which acquires mLock. mLock.unlock(); svc.clear(); mLock.lock(); - if (!exitPending()) { + if (!exitPending() && mAudioCommands.isEmpty()) { + // release delayed commands wake lock + release_wake_lock(mName.string()); ALOGV("AudioCommandThread() going to sleep"); mWaitWorkCV.waitRelative(mLock, waitTime); ALOGV("AudioCommandThread() waking up"); } } + // release delayed commands wake lock before quitting + if (!mAudioCommands.isEmpty()) { + release_wake_lock(mName.string()); + } mLock.unlock(); return false; } |