Only write to the pending-backup journal when necessary

We now only commit to the pending-backup journal on disk the first time that a
given package is added to the backup set.  This avoids a lot of write thrashing
of the disk, particularly since Settings tends to call dataChanged() a great
many times during boot, while the Settings UI is in use, etc.
This commit is contained in:
Christopher Tate
2009-07-07 14:50:26 -07:00
parent c4cf22e82b
commit a7de384550

View File

@@ -1212,10 +1212,12 @@ class BackupManagerService extends IBackupManager.Stub {
// Add the caller to the set of pending backups. If there is
// one already there, then overwrite it, but no harm done.
BackupRequest req = new BackupRequest(app, false);
mPendingBackups.put(app, req);
// Journal this request in case of crash
writeToJournalLocked(packageName);
if (mPendingBackups.put(app, req) == null) {
// Journal this request in case of crash. The put()
// operation returned null when this package was not already
// in the set; we want to avoid touching the disk redundantly.
writeToJournalLocked(packageName);
}
}
}