Merge "Fix spurious restore session timeouts" into lmp-dev

This commit is contained in:
Christopher Tate
2014-10-16 03:28:58 +00:00
committed by Android (Google) Code Review

View File

@@ -8857,6 +8857,12 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
Slog.w(TAG, "Null transport getting restore sets"); Slog.w(TAG, "Null transport getting restore sets");
return -1; return -1;
} }
// We know we're doing legit work now, so halt the timeout
// until we're done. It gets started again when the result
// comes in.
mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
// spin off the transport request to our service thread // spin off the transport request to our service thread
mWakelock.acquire(); mWakelock.acquire();
Message msg = mBackupHandler.obtainMessage(MSG_RUN_GET_RESTORE_SETS, Message msg = mBackupHandler.obtainMessage(MSG_RUN_GET_RESTORE_SETS,
@@ -8909,6 +8915,9 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
synchronized (mQueueLock) { synchronized (mQueueLock) {
for (int i = 0; i < mRestoreSets.length; i++) { for (int i = 0; i < mRestoreSets.length; i++) {
if (token == mRestoreSets[i].token) { if (token == mRestoreSets[i].token) {
// Real work, so stop the session timeout until we finalize the restore
mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
long oldId = Binder.clearCallingIdentity(); long oldId = Binder.clearCallingIdentity();
mWakelock.acquire(); mWakelock.acquire();
if (MORE_DEBUG) { if (MORE_DEBUG) {
@@ -8988,6 +8997,9 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
synchronized (mQueueLock) { synchronized (mQueueLock) {
for (int i = 0; i < mRestoreSets.length; i++) { for (int i = 0; i < mRestoreSets.length; i++) {
if (token == mRestoreSets[i].token) { if (token == mRestoreSets[i].token) {
// Stop the session timeout until we finalize the restore
mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
long oldId = Binder.clearCallingIdentity(); long oldId = Binder.clearCallingIdentity();
mWakelock.acquire(); mWakelock.acquire();
if (MORE_DEBUG) { if (MORE_DEBUG) {
@@ -9068,6 +9080,9 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
return -1; return -1;
} }
// Stop the session timeout until we finalize the restore
mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
// Ready to go: enqueue the restore request and claim success // Ready to go: enqueue the restore request and claim success
long oldId = Binder.clearCallingIdentity(); long oldId = Binder.clearCallingIdentity();
mWakelock.acquire(); mWakelock.acquire();