Skip to content
Commit 031e607a authored by Martijn Coenen's avatar Martijn Coenen
Browse files

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)
parent 01f8961b
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment