diff options
| author | 2014-12-18 16:55:42 +0000 | |
|---|---|---|
| committer | 2014-12-18 16:55:43 +0000 | |
| commit | 07bb03c42343d54d0a8eb609c74eebd9ecd0df9d (patch) | |
| tree | 1430ab282a6ced6b06cd648306d32fbaf2bcbbe4 | |
| parent | 5cd79d070828b79d8b7d4ecdc3bdbf862866ac9a (diff) | |
| parent | 61231a5eff65f7123e0d7d9afae447c955ef22b4 (diff) | |
Merge "Avoid deadlock between ActivityManagerService and ProcessStatsService."
| -rw-r--r-- | services/core/java/com/android/server/am/ProcessStatsService.java | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/am/ProcessStatsService.java b/services/core/java/com/android/server/am/ProcessStatsService.java index bffb5419a70e..c5f63f12f6db 100644 --- a/services/core/java/com/android/server/am/ProcessStatsService.java +++ b/services/core/java/com/android/server/am/ProcessStatsService.java @@ -445,14 +445,14 @@ public final class ProcessStatsService extends IProcessStats.Stub { mAm.mContext.enforceCallingOrSelfPermission( android.Manifest.permission.PACKAGE_USAGE_STATS, null); Parcel current = Parcel.obtain(); + synchronized (mAm) { + long now = SystemClock.uptimeMillis(); + mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime(); + mProcessStats.mTimePeriodEndUptime = now; + mProcessStats.writeToParcel(current, now, 0); + } mWriteLock.lock(); try { - synchronized (mAm) { - long now = SystemClock.uptimeMillis(); - mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime(); - mProcessStats.mTimePeriodEndUptime = now; - mProcessStats.writeToParcel(current, now, 0); - } if (historic != null) { ArrayList<String> files = getCommittedFiles(0, false, true); if (files != null) { @@ -476,18 +476,18 @@ public final class ProcessStatsService extends IProcessStats.Stub { public ParcelFileDescriptor getStatsOverTime(long minTime) { mAm.mContext.enforceCallingOrSelfPermission( android.Manifest.permission.PACKAGE_USAGE_STATS, null); + Parcel current = Parcel.obtain(); + long curTime; + synchronized (mAm) { + long now = SystemClock.uptimeMillis(); + mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime(); + mProcessStats.mTimePeriodEndUptime = now; + mProcessStats.writeToParcel(current, now, 0); + curTime = mProcessStats.mTimePeriodEndRealtime + - mProcessStats.mTimePeriodStartRealtime; + } mWriteLock.lock(); try { - Parcel current = Parcel.obtain(); - long curTime; - synchronized (mAm) { - long now = SystemClock.uptimeMillis(); - mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime(); - mProcessStats.mTimePeriodEndUptime = now; - mProcessStats.writeToParcel(current, now, 0); - curTime = mProcessStats.mTimePeriodEndRealtime - - mProcessStats.mTimePeriodStartRealtime; - } if (curTime < minTime) { // Need to add in older stats to reach desired time. ArrayList<String> files = getCommittedFiles(0, false, true); |