Merge "Merge "Fix StorageManagerService linkToDeath more than one time when vold/storaged died." am: d7f82d5766 am: c80ad354b4 am: a92cb75605" into qt-r1-dev-plus-aosp

This commit is contained in:
Android Build Merger (Role)
2019-08-07 17:07:17 +00:00
committed by Android (Google) Code Review

View File

@@ -1557,10 +1557,11 @@ class StorageManagerService extends IStorageManager.Stub
}
private void start() {
connect();
connectStoraged();
connectVold();
}
private void connect() {
private void connectStoraged() {
IBinder binder = ServiceManager.getService("storaged");
if (binder != null) {
try {
@@ -1569,7 +1570,7 @@ class StorageManagerService extends IStorageManager.Stub
public void binderDied() {
Slog.w(TAG, "storaged died; reconnecting");
mStoraged = null;
connect();
connectStoraged();
}
}, 0);
} catch (RemoteException e) {
@@ -1583,7 +1584,17 @@ class StorageManagerService extends IStorageManager.Stub
Slog.w(TAG, "storaged not found; trying again");
}
binder = ServiceManager.getService("vold");
if (mStoraged == null) {
BackgroundThread.getHandler().postDelayed(() -> {
connectStoraged();
}, DateUtils.SECOND_IN_MILLIS);
} else {
onDaemonConnected();
}
}
private void connectVold() {
IBinder binder = ServiceManager.getService("vold");
if (binder != null) {
try {
binder.linkToDeath(new DeathRecipient() {
@@ -1591,7 +1602,7 @@ class StorageManagerService extends IStorageManager.Stub
public void binderDied() {
Slog.w(TAG, "vold died; reconnecting");
mVold = null;
connect();
connectVold();
}
}, 0);
} catch (RemoteException e) {
@@ -1611,9 +1622,9 @@ class StorageManagerService extends IStorageManager.Stub
Slog.w(TAG, "vold not found; trying again");
}
if (mStoraged == null || mVold == null) {
if (mVold == null) {
BackgroundThread.getHandler().postDelayed(() -> {
connect();
connectVold();
}, DateUtils.SECOND_IN_MILLIS);
} else {
onDaemonConnected();