Camera: Avoid possible race condition during provider init
The current sequence of registering for provider notifications and trying to add a legacy provider could introduce a race condition leading to a deadlock. The "onRegistration" callback will try to acquire "mInterfaceMutex" which is still held during the execution of "addProvider" for legacy. However "addProvider" could get suspended waiting on the HIDL provider interface. If this happens and the same thread that unblocks the service query tries to notify the provider manager, then we will end up in a deadlock. To avoid this, the initialization sequence can be modified a bit. First add the legacy provider and then register for notifications. Bug: 35096594 Test: Manual using stop/start of cameraserver Change-Id: Ia381ae6bf567525cabd3f51246a192ddac37b7f8
Loading
Please register or sign in to comment