am 4ebaf0f1: Merge "Change thread priority for disk measurement to bg" into jb-dev
* commit '4ebaf0f1d4be34f475bb663784b40cf79b9d2184':
Change thread priority for disk measurement to bg
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index 3b87b96..f09c010 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -223,6 +223,8 @@
@Override
public long calculateDirectorySize(String path) throws RemoteException {
+ Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
+
final File directory = new File(path);
if (directory.exists() && directory.isDirectory()) {
return MeasurementUtils.measureDirectory(path);
@@ -233,6 +235,8 @@
@Override
public long[] getFileSystemStats(String path) {
+ Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
+
try {
final StructStatFs stat = Libcore.os.statfs(path);
final long totalSize = stat.f_blocks * stat.f_bsize;
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index d7c5eea..497ee4b 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -5600,16 +5600,18 @@
private final IPackageStatsObserver mObserver;
- public MeasureParams(PackageStats stats, boolean success, IPackageStatsObserver observer) {
+ public MeasureParams(PackageStats stats, IPackageStatsObserver observer) {
mObserver = observer;
mStats = stats;
- mSuccess = success;
}
@Override
void handleStartCopy() throws RemoteException {
- final boolean mounted;
+ synchronized (mInstallLock) {
+ mSuccess = getPackageSizeInfoLI(mStats.packageName, mStats);
+ }
+ final boolean mounted;
if (Environment.isExternalStorageEmulated()) {
mounted = true;
} else {
@@ -7781,22 +7783,16 @@
final IPackageStatsObserver observer) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.GET_PACKAGE_SIZE, null);
- // Queue up an async operation since the package deletion may take a little while.
- mHandler.post(new Runnable() {
- public void run() {
- mHandler.removeCallbacks(this);
- PackageStats stats = new PackageStats(packageName);
- final boolean success;
- synchronized (mInstallLock) {
- success = getPackageSizeInfoLI(packageName, stats);
- }
+ PackageStats stats = new PackageStats(packageName);
- Message msg = mHandler.obtainMessage(INIT_COPY);
- msg.obj = new MeasureParams(stats, success, observer);
- mHandler.sendMessage(msg);
- } //end run
- });
+ /*
+ * Queue up an async operation since the package measurement may take a
+ * little while.
+ */
+ Message msg = mHandler.obtainMessage(INIT_COPY);
+ msg.obj = new MeasureParams(stats, observer);
+ mHandler.sendMessage(msg);
}
private boolean getPackageSizeInfoLI(String packageName, PackageStats pStats) {