Jackeagle | d3ba228 | 2018-11-17 20:49:22 -0700 | [diff] [blame^] | 1 | From 7338690836a48da7303d111a0f38f98996a9cdd5 Mon Sep 17 00:00:00 2001 |
Jon West | 013ef58 | 2018-08-21 20:45:26 -0400 | [diff] [blame] | 2 | From: Pierre-Hugues Husson <phh@phh.me> |
| 3 | Date: Sun, 19 Aug 2018 22:59:06 +0200 |
Jackeagle | d3ba228 | 2018-11-17 20:49:22 -0700 | [diff] [blame^] | 4 | Subject: [PATCH 3/4] Kirin:: Remove lock to prevent self-lock |
Jon West | 013ef58 | 2018-08-21 20:45:26 -0400 | [diff] [blame] | 5 | |
| 6 | With Huawei Camera HAL, we get the following call order: |
| 7 | cameraserver CameraService::enumerateProviders (*) |
| 8 | => HAL ICameraProvider::getVendorTags |
| 9 | => HAL ICameraProviderCallback::cameraDeviceStatusChange |
| 10 | => cameraserver CameraService::addState |
| 11 | => cameraserver CameraService::updateCameraNumAndIds (*) |
| 12 | |
| 13 | The two functions marked with (*) take mServiceLock |
| 14 | Hence the safe-lock |
| 15 | --- |
| 16 | services/camera/libcameraservice/CameraService.cpp | 2 +- |
| 17 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 18 | |
| 19 | diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp |
Jackeagle | d3ba228 | 2018-11-17 20:49:22 -0700 | [diff] [blame^] | 20 | index fb740053e..b62d22080 100644 |
Jon West | 013ef58 | 2018-08-21 20:45:26 -0400 | [diff] [blame] | 21 | --- a/services/camera/libcameraservice/CameraService.cpp |
| 22 | +++ b/services/camera/libcameraservice/CameraService.cpp |
Jackeagle | d3ba228 | 2018-11-17 20:49:22 -0700 | [diff] [blame^] | 23 | @@ -233,7 +233,7 @@ void CameraService::onNewProviderRegistered() { |
Jon West | 013ef58 | 2018-08-21 20:45:26 -0400 | [diff] [blame] | 24 | } |
| 25 | |
| 26 | void CameraService::updateCameraNumAndIds() { |
| 27 | - Mutex::Autolock l(mServiceLock); |
| 28 | + //Mutex::Autolock l(mServiceLock); |
| 29 | mNumberOfCameras = mCameraProviderManager->getCameraCount(); |
| 30 | mNormalDeviceIds = |
| 31 | mCameraProviderManager->getAPI1CompatibleCameraDeviceIds(); |
| 32 | -- |
Jackeagle | d3ba228 | 2018-11-17 20:49:22 -0700 | [diff] [blame^] | 33 | 2.17.1 |
Jon West | 013ef58 | 2018-08-21 20:45:26 -0400 | [diff] [blame] | 34 | |