diff options
author | Brad Fitzpatrick <bradfitz@android.com> | 2010-09-06 22:17:12 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@android.com> | 2010-09-06 22:18:39 -0700 |
commit | 6f9d58ac62366b13a1eac00d58ebc84f03cea3f2 (patch) | |
tree | 9309e0a55f0efae669f78171e6f48fd48dfb5a7c /core | |
parent | 960b31e3b3b40f92665be4b7a79da7f05ea19751 (diff) | |
download | frameworks_base-6f9d58ac62366b13a1eac00d58ebc84f03cea3f2.zip frameworks_base-6f9d58ac62366b13a1eac00d58ebc84f03cea3f2.tar.gz frameworks_base-6f9d58ac62366b13a1eac00d58ebc84f03cea3f2.tar.bz2 |
Make SharedPreferencesBackupHelper wait for async SharedPreference writes
Fixes a potential race with backups.
Change-Id: I73492c0384091cedd7802109257312387fcd43f9
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/app/backup/SharedPreferencesBackupHelper.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/app/backup/SharedPreferencesBackupHelper.java b/core/java/android/app/backup/SharedPreferencesBackupHelper.java index 23b1703..213bd31 100644 --- a/core/java/android/app/backup/SharedPreferencesBackupHelper.java +++ b/core/java/android/app/backup/SharedPreferencesBackupHelper.java @@ -16,6 +16,7 @@ package android.app.backup; +import android.app.QueuedWork; import android.content.Context; import android.content.SharedPreferences; import android.os.ParcelFileDescriptor; @@ -94,7 +95,11 @@ public class SharedPreferencesBackupHelper extends FileBackupHelperBase implemen public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) { Context context = mContext; - + + // If a SharedPreference has an outstanding write in flight, + // wait for it to finish flushing to disk. + QueuedWork.waitToFinish(); + // make filenames for the prefGroups String[] prefGroups = mPrefGroups; final int N = prefGroups.length; @@ -123,4 +128,3 @@ public class SharedPreferencesBackupHelper extends FileBackupHelperBase implemen } } } - |