Camera: Delay pingCameraServiceProxy to end of onFirstRef

The cameraservice is only registered to service manager after onFirstRef
is returned. To reduce the probability of getBinderService() call
returning null, move pingCameraServiceProxy to end of onFirstRef().

Also add debug messages in onFirstRef and main() for better diagnoses.

Test: Camera CTS
Bug: 140414594
Change-Id: I52defd1c138ade57ebc5181c42aff30921fbeaeb
gugelfrei
Shuzhen Wang 5 years ago
parent 804b87d1f8
commit 24b44157d3

@ -34,6 +34,7 @@ int main(int argc __unused, char** argv __unused)
sp<IServiceManager> sm = defaultServiceManager();
ALOGI("ServiceManager: %p", sm.get());
CameraService::instantiate();
ALOGI("ServiceManager: %p done instantiate", sm.get());
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}

@ -153,8 +153,6 @@ void CameraService::onFirstRef()
mInitialized = true;
}
CameraService::pingCameraServiceProxy();
mUidPolicy = new UidPolicy(this);
mUidPolicy->registerSelf();
mSensorPrivacyPolicy = new SensorPrivacyPolicy(this);
@ -164,6 +162,11 @@ void CameraService::onFirstRef()
ALOGE("%s: Failed to register default android.frameworks.cameraservice.service@1.0",
__FUNCTION__);
}
// This needs to be last call in this function, so that it's as close to
// ServiceManager::addService() as possible.
CameraService::pingCameraServiceProxy();
ALOGI("CameraService pinged cameraservice proxy");
}
status_t CameraService::enumerateProviders() {

Loading…
Cancel
Save