diff options
author | Chien-Yu Chen <cychen@google.com> | 2015-09-02 17:49:32 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-09-02 17:49:32 +0000 |
commit | ef7826692df89514701d12dfbfc31bec3814cf95 (patch) | |
tree | 6e91d3217d379f14ad217544297291ff7954f78f /services | |
parent | 5dc3d9928f85580a2351925b5f11ff0189524c39 (diff) | |
parent | fe751bea0d3eedd6e817aebf4e457425b82e7117 (diff) | |
download | frameworks_av-ef7826692df89514701d12dfbfc31bec3814cf95.zip frameworks_av-ef7826692df89514701d12dfbfc31bec3814cf95.tar.gz frameworks_av-ef7826692df89514701d12dfbfc31bec3814cf95.tar.bz2 |
am fe751bea: Camera: Fix flashlight deadlock
* commit 'fe751bea0d3eedd6e817aebf4e457425b82e7117':
Camera: Fix flashlight deadlock
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 4 | ||||
-rw-r--r-- | services/camera/libcameraservice/CameraService.h | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 7128df7..d289704 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -368,7 +368,7 @@ void CameraService::onTorchStatusChangedLocked(const String8& cameraId, { // Update battery life logging for flashlight - Mutex::Autolock al(mTorchClientMapMutex); + Mutex::Autolock al(mTorchUidMapMutex); auto iter = mTorchUidMap.find(cameraId); if (iter != mTorchUidMap.end()) { int oldUid = iter->second.second; @@ -1267,7 +1267,7 @@ status_t CameraService::setTorchMode(const String16& cameraId, bool enabled, { // Update UID map - this is used in the torch status changed callbacks, so must be done // before setTorchMode - Mutex::Autolock al(mTorchClientMapMutex); + Mutex::Autolock al(mTorchUidMapMutex); if (mTorchUidMap.find(id) == mTorchUidMap.end()) { mTorchUidMap[id].first = uid; mTorchUidMap[id].second = uid; diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h index 894767a..a8c6b6c 100644 --- a/services/camera/libcameraservice/CameraService.h +++ b/services/camera/libcameraservice/CameraService.h @@ -657,8 +657,10 @@ private: sp<CameraFlashlight> mFlashlight; // guard mTorchStatusMap Mutex mTorchStatusMutex; - // guard mTorchClientMap, mTorchUidMap + // guard mTorchClientMap Mutex mTorchClientMapMutex; + // guard mTorchUidMap + Mutex mTorchUidMapMutex; // camera id -> torch status KeyedVector<String8, ICameraServiceListener::TorchStatus> mTorchStatusMap; // camera id -> torch client binder |