Merge "Call unlockUserKey in a synchronized section" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
735fa43314
@@ -927,19 +927,18 @@ final class UserController {
|
|||||||
|
|
||||||
boolean unlockUserCleared(final int userId, byte[] token, byte[] secret,
|
boolean unlockUserCleared(final int userId, byte[] token, byte[] secret,
|
||||||
IProgressListener listener) {
|
IProgressListener listener) {
|
||||||
final UserState uss;
|
|
||||||
synchronized (mService) {
|
synchronized (mService) {
|
||||||
// Bail if user isn't actually running, otherwise register the given
|
// Bail if user isn't actually running, otherwise register the given
|
||||||
// listener to watch for unlock progress
|
// listener to watch for unlock progress
|
||||||
uss = mStartedUsers.get(userId);
|
final UserState uss = mStartedUsers.get(userId);
|
||||||
if (uss == null) {
|
if (uss == null) {
|
||||||
notifyFinished(userId, listener);
|
notifyFinished(userId, listener);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
uss.mUnlockProgress.addListener(listener);
|
uss.mUnlockProgress.addListener(listener);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
// TODO Move this block outside of synchronized if it causes lock contention
|
||||||
if (!StorageManager.isUserKeyUnlocked(userId)) {
|
if (!StorageManager.isUserKeyUnlocked(userId)) {
|
||||||
final UserInfo userInfo = getUserInfo(userId);
|
final UserInfo userInfo = getUserInfo(userId);
|
||||||
final IMountService mountService = getMountService();
|
final IMountService mountService = getMountService();
|
||||||
@@ -952,7 +951,6 @@ final class UserController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized (mService) {
|
|
||||||
finishUserUnlocking(uss);
|
finishUserUnlocking(uss);
|
||||||
|
|
||||||
// We just unlocked a user, so let's now attempt to unlock any
|
// We just unlocked a user, so let's now attempt to unlock any
|
||||||
|
|||||||
Reference in New Issue
Block a user