From 5537ce1f94ef1851d316ecf029e13ef7833f6c3a Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Tue, 10 May 2016 07:02:42 +0000 Subject: [PATCH] Revert "Persist settings on a dedicated background thread" Bug: 25472484 This reverts commit 82b8c92b97d3c7006d7a9f67a9cdb83263d6bf2c. Change-Id: I1a8c2e186ad74d78f1c82fe508c6f71c438177dc --- .../providers/settings/SettingsProvider.java | 13 +------------ .../android/providers/settings/SettingsState.java | 6 ++---- .../providers/settings/SettingsStateTest.java | 7 +++---- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 2095a477f36bc..5ff9c0ce3c847 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -46,7 +46,6 @@ import android.os.Debug; import android.os.DropBoxManager; import android.os.Environment; import android.os.Handler; -import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.os.ParcelFileDescriptor; @@ -200,12 +199,6 @@ public class SettingsProvider extends ContentProvider { @GuardedBy("mLock") private SettingsRegistry mSettingsRegistry; - @GuardedBy("mLock") - private HandlerThread mHandlerThread; - - @GuardedBy("mLock") - private Handler mBackgroundHandler; - // We have to call in the user manager with no lock held, private volatile UserManager mUserManager; @@ -252,10 +245,6 @@ public class SettingsProvider extends ContentProvider { mUserManager = UserManager.get(getContext()); mPackageManager = AppGlobals.getPackageManager(); mSettingsRegistry = new SettingsRegistry(); - mHandlerThread = new HandlerThread(LOG_TAG, - Process.THREAD_PRIORITY_BACKGROUND); - mHandlerThread.start(); - mBackgroundHandler = new Handler(mHandlerThread.getLooper()); } registerBroadcastReceivers(); startWatchingUserRestrictionChanges(); @@ -1680,7 +1669,7 @@ public class SettingsProvider extends ContentProvider { if (mSettingsStates.get(key) == null) { final int maxBytesPerPackage = getMaxBytesPerPackageForType(getTypeFromKey(key)); SettingsState settingsState = new SettingsState(mLock, getSettingsFile(key), key, - maxBytesPerPackage, mBackgroundHandler); + maxBytesPerPackage); mSettingsStates.put(key, settingsState); } } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java index 1e027475fd69d..2de0618c6564e 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java @@ -95,7 +95,7 @@ final class SettingsState { private final Object mLock; - private final Handler mHandler; + private final Handler mHandler = new MyHandler(); @GuardedBy("mLock") private final ArrayMap mSettings = new ArrayMap<>(); @@ -134,15 +134,13 @@ final class SettingsState { @GuardedBy("mLock") private long mNextId; - public SettingsState(Object lock, File file, int key, int maxBytesPerAppPackage, - Handler handler) { + public SettingsState(Object lock, File file, int key, int maxBytesPerAppPackage) { // It is important that we use the same lock as the settings provider // to ensure multiple mutations on this state are atomicaly persisted // as the async persistence should be blocked while we make changes. mLock = lock; mStatePersistFile = file; mKey = key; - mHandler = handler; if (maxBytesPerAppPackage == MAX_BYTES_PER_APP_PACKAGE_LIMITED) { mMaxBytesPerAppPackage = maxBytesPerAppPackage; mPackageToMemoryUsage = new ArrayMap<>(); diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java index 53c2958ad914a..3f9ffa10f9630 100644 --- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java +++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java @@ -15,7 +15,6 @@ */ package com.android.providers.settings; -import android.os.Handler; import android.test.AndroidTestCase; import android.util.Xml; @@ -127,7 +126,7 @@ public class SettingsStateTest extends AndroidTestCase { final Object lock = new Object(); final SettingsState ssWriter = new SettingsState(lock, file, 1, - SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED, new Handler()); + SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED); ssWriter.setVersionLocked(SettingsState.SETTINGS_VERSOIN_NEW_ENCODING); ssWriter.insertSettingLocked("k1", "\u0000", "package"); @@ -139,7 +138,7 @@ public class SettingsStateTest extends AndroidTestCase { } final SettingsState ssReader = new SettingsState(lock, file, 1, - SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED, new Handler()); + SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED); synchronized (lock) { assertEquals("\u0000", ssReader.getSettingLocked("k1").getValue()); assertEquals("abc", ssReader.getSettingLocked("k2").getValue()); @@ -166,7 +165,7 @@ public class SettingsStateTest extends AndroidTestCase { os.close(); final SettingsState ss = new SettingsState(lock, file, 1, - SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED, new Handler()); + SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED); synchronized (lock) { SettingsState.Setting s; s = ss.getSettingLocked("k0");