Loading
Don't use transport binder with the lock held
There was a deadlock around the transport lock. We registered transports with the transport lock held, this kicked-off transport onCreate() synchronously, which called TransportManager updateTransportAttributes(), which tried to acquire mentioned lock but couldn't. This CL removes the lock for any call to the transport or operation that triggers a call to the transport (it was TransportClient.connect() or its variants). Test: Load GMSCore before fix, boot, register transports, check no ANR Test: m -j RunFrameworksServicesRoboTests Test: adb shell bmgr transport -c <transport>, being registered & not Bug: 72147303 Change-Id: I72ca145d7fb73c0ef29c4aa1b620fea4969481db