Merge "Fix low probability deadlock"

This commit is contained in:
Xiangyu/Malcolm Chen
2018-02-21 21:16:44 +00:00
committed by Gerrit Code Review

View File

@@ -503,6 +503,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
// register
IBinder b = callback.asBinder();
@@ -525,9 +526,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
} else {//APP specify subID
r.subId = subId;
}
r.phoneId = SubscriptionManager.getPhoneId(r.subId);
int phoneId = r.phoneId;
r.phoneId = phoneId;
r.events = events;
if (DBG) {
log("listen: Register r=" + r + " r.subId=" + r.subId + " phoneId=" + phoneId);
@@ -1013,9 +1012,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
log("notifyCellInfoForSubscriber: subId=" + subId
+ " cellInfo=" + cellInfo);
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
int phoneId = SubscriptionManager.getPhoneId(subId);
if (validatePhoneId(phoneId)) {
mCellInfo.set(phoneId, cellInfo);
for (Record r : mRecords) {
@@ -1103,8 +1101,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
log("notifyCallForwardingChangedForSubscriber: subId=" + subId
+ " cfi=" + cfi);
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
int phoneId = SubscriptionManager.getPhoneId(subId);
if (validatePhoneId(phoneId)) {
mCallForwarding[phoneId] = cfi;
for (Record r : mRecords) {
@@ -1131,8 +1129,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (!checkNotifyPermission("notifyDataActivity()" )) {
return;
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
int phoneId = SubscriptionManager.getPhoneId(subId);
if (validatePhoneId(phoneId)) {
mDataActivity[phoneId] = state;
for (Record r : mRecords) {
@@ -1173,8 +1171,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
+ "' apn='" + apn + "' apnType=" + apnType + " networkType=" + networkType
+ " mRecords.size()=" + mRecords.size());
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
int phoneId = SubscriptionManager.getPhoneId(subId);
if (validatePhoneId(phoneId)) {
boolean modified = false;
if (state == TelephonyManager.DATA_CONNECTED) {
@@ -1297,8 +1295,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
log("notifyCellLocationForSubscriber: subId=" + subId
+ " cellLocation=" + cellLocation);
}
int phoneId = SubscriptionManager.getPhoneId(subId);
synchronized (mRecords) {
int phoneId = SubscriptionManager.getPhoneId(subId);
if (validatePhoneId(phoneId)) {
mCellLocation[phoneId] = cellLocation;
for (Record r : mRecords) {