From 561f52484b84d28b4b0140705f7e2b63a45e3968 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Sun, 19 Aug 2018 22:59:06 +0200 Subject: [PATCH 3/8] ::Kirin:: Remove lock to prevent self-lock With Huawei Camera HAL, we get the following call order: cameraserver CameraService::enumerateProviders (*) => HAL ICameraProvider::getVendorTags => HAL ICameraProviderCallback::cameraDeviceStatusChange => cameraserver CameraService::addState => cameraserver CameraService::updateCameraNumAndIds (*) The two functions marked with (*) take mServiceLock Hence the safe-lock --- services/camera/libcameraservice/CameraService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 2bf42b638..d62a71ab9 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -218,7 +218,7 @@ void CameraService::onNewProviderRegistered() { } void CameraService::updateCameraNumAndIds() { - Mutex::Autolock l(mServiceLock); + //Mutex::Autolock l(mServiceLock); mNumberOfCameras = mCameraProviderManager->getCameraCount(); mNormalDeviceIds = mCameraProviderManager->getAPI1CompatibleCameraDeviceIds(); -- 2.17.1