diff options
author | Joe Onorato <joeo@android.com> | 2010-05-04 12:12:41 -0700 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2010-05-04 14:43:16 -0700 |
commit | fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8 (patch) | |
tree | 19b5342f3278f6005e948e156166739a38335038 /src/com/android/launcher2/LauncherModel.java | |
parent | c15bd51dbfb476503922791b109a78216afad12e (diff) | |
download | android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.tar.gz android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.tar.bz2 android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.zip |
Tweak locking in launcher so mLock isn't held while the slow stuff happens.
Bug 2652948
Change-Id: I9d386395278830ead5deda17b8b09e0dcfeff989
Diffstat (limited to 'src/com/android/launcher2/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index d5b585900..a8672008c 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -73,6 +73,7 @@ public class LauncherModel extends BroadcastReceiver { private boolean mBeforeFirstLoad = true; // only access this from main thread private WeakReference<Callbacks> mCallbacks; + private final Object mAllAppsListLock = new Object(); private AllAppsList mAllAppsList; private IconCache mIconCache; @@ -306,7 +307,7 @@ public class LauncherModel extends BroadcastReceiver { ArrayList<ApplicationInfo> removed = null; ArrayList<ApplicationInfo> modified = null; - synchronized (mLock) { + synchronized (mAllAppsListLock) { if (mBeforeFirstLoad) { // If we haven't even loaded yet, don't bother, since we'll just pick // up the changes. @@ -1047,7 +1048,7 @@ public class LauncherModel extends BroadcastReceiver { int i=0; int batchSize = -1; while (i < N && !mStopped) { - synchronized (mLock) { + synchronized (mAllAppsListLock) { if (i == 0) { // This needs to happen inside the same lock block as when we // prepare the first batch for bindAllApplications. Otherwise |