Use futures for binding and talking to the ExternalStorageService.
Patching this CL since it fixes the issue of screen freezing after switching user. The existing CountdownLatch logic had some corner cases where it would continue waiting for the latch to count down, even when it was already clear that the operation couldn't succeed (eg, a bind failed). To fix this, as well as try and simplify some of this code, switch to using futures, which have a nicely defined way of cancelling outstanding operations. Additionally, switch to using a dedicated handler thread for receiving bind events for all users, not just demo users. This avoids having to wait for a long time when the system_server main thread is busy. Fix: 180930791 Test: atest AdoptableHostTest atest CtsScopedStorageHostTest atest android.multiuser.UserLifecycleTests#managedProfileUnlock atest android.multiuser.UserLifecycleTests#managedProfileUnlockAndLaunchApp_stopped Change-Id: Id58970106d152e5d200cfd3993fd83b93b975156 Merged-In: I1b7fde2f6ed1074b9c814d56808ab1614f25aead (cherry picked from commit 9252dfb4)
Loading
Please register or sign in to comment