am 99771e9e: am 9a957e09: am d55d3c59: am bc156ba4: Merge "Fix deadlock caused by clearAllBackoffs in SSE" into lmp-dev

* commit '99771e9ea7e68eb8a7578361d5ee24a037dc382d':
  Fix deadlock caused by clearAllBackoffs in SSE
This commit is contained in:
Matthew Williams
2014-10-01 01:43:15 +00:00
committed by Android Git Automerger
2 changed files with 5 additions and 5 deletions

View File

@@ -311,7 +311,9 @@ public class SyncManager {
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "Reconnection detected: clearing all backoffs");
}
mSyncStorageEngine.clearAllBackoffs(mSyncQueue);
synchronized (mSyncQueue) {
mSyncStorageEngine.clearAllBackoffsLocked(mSyncQueue);
}
}
sendCheckAlarmsMessage();
}

View File

@@ -834,17 +834,16 @@ public class SyncStorageEngine extends Handler {
return changed;
}
public void clearAllBackoffs(SyncQueue syncQueue) {
public void clearAllBackoffsLocked(SyncQueue syncQueue) {
boolean changed = false;
synchronized (mAuthorities) {
synchronized (syncQueue) {
// Clear backoff for all sync adapters.
for (AccountInfo accountInfo : mAccounts.values()) {
for (AuthorityInfo authorityInfo : accountInfo.authorities.values()) {
if (authorityInfo.backoffTime != NOT_IN_BACKOFF_MODE
|| authorityInfo.backoffDelay != NOT_IN_BACKOFF_MODE) {
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "clearAllBackoffs:"
Log.v(TAG, "clearAllBackoffsLocked:"
+ " authority:" + authorityInfo.target
+ " account:" + accountInfo.accountAndUser.account.name
+ " user:" + accountInfo.accountAndUser.userId
@@ -868,7 +867,6 @@ public class SyncStorageEngine extends Handler {
authorityInfo.backoffDelay = NOT_IN_BACKOFF_MODE;
}
}
}
syncQueue.clearBackoffs();
}
}