summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorChien-Yu Chen <cychen@google.com>2015-09-02 17:49:32 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-09-02 17:49:32 +0000
commitef7826692df89514701d12dfbfc31bec3814cf95 (patch)
tree6e91d3217d379f14ad217544297291ff7954f78f /services
parent5dc3d9928f85580a2351925b5f11ff0189524c39 (diff)
parentfe751bea0d3eedd6e817aebf4e457425b82e7117 (diff)
downloadframeworks_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.cpp4
-rw-r--r--services/camera/libcameraservice/CameraService.h4
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