Merge "Fix deadlock caused by clearAllBackoffs in SSE" into lmp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bc156ba430
@@ -311,7 +311,9 @@ public class SyncManager {
|
|||||||
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
||||||
Log.v(TAG, "Reconnection detected: clearing all backoffs");
|
Log.v(TAG, "Reconnection detected: clearing all backoffs");
|
||||||
}
|
}
|
||||||
mSyncStorageEngine.clearAllBackoffs(mSyncQueue);
|
synchronized (mSyncQueue) {
|
||||||
|
mSyncStorageEngine.clearAllBackoffsLocked(mSyncQueue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sendCheckAlarmsMessage();
|
sendCheckAlarmsMessage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -834,17 +834,16 @@ public class SyncStorageEngine extends Handler {
|
|||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clearAllBackoffs(SyncQueue syncQueue) {
|
public void clearAllBackoffsLocked(SyncQueue syncQueue) {
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
synchronized (mAuthorities) {
|
synchronized (mAuthorities) {
|
||||||
synchronized (syncQueue) {
|
|
||||||
// Clear backoff for all sync adapters.
|
// Clear backoff for all sync adapters.
|
||||||
for (AccountInfo accountInfo : mAccounts.values()) {
|
for (AccountInfo accountInfo : mAccounts.values()) {
|
||||||
for (AuthorityInfo authorityInfo : accountInfo.authorities.values()) {
|
for (AuthorityInfo authorityInfo : accountInfo.authorities.values()) {
|
||||||
if (authorityInfo.backoffTime != NOT_IN_BACKOFF_MODE
|
if (authorityInfo.backoffTime != NOT_IN_BACKOFF_MODE
|
||||||
|| authorityInfo.backoffDelay != NOT_IN_BACKOFF_MODE) {
|
|| authorityInfo.backoffDelay != NOT_IN_BACKOFF_MODE) {
|
||||||
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
||||||
Log.v(TAG, "clearAllBackoffs:"
|
Log.v(TAG, "clearAllBackoffsLocked:"
|
||||||
+ " authority:" + authorityInfo.target
|
+ " authority:" + authorityInfo.target
|
||||||
+ " account:" + accountInfo.accountAndUser.account.name
|
+ " account:" + accountInfo.accountAndUser.account.name
|
||||||
+ " user:" + accountInfo.accountAndUser.userId
|
+ " user:" + accountInfo.accountAndUser.userId
|
||||||
@@ -868,7 +867,6 @@ public class SyncStorageEngine extends Handler {
|
|||||||
authorityInfo.backoffDelay = NOT_IN_BACKOFF_MODE;
|
authorityInfo.backoffDelay = NOT_IN_BACKOFF_MODE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
syncQueue.clearBackoffs();
|
syncQueue.clearBackoffs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user