am 07bb03c4: Merge "Avoid deadlock between ActivityManagerService and ProcessStatsService."
* commit '07bb03c42343d54d0a8eb609c74eebd9ecd0df9d': Avoid deadlock between ActivityManagerService and ProcessStatsService.
This commit is contained in:
@@ -445,14 +445,14 @@ public final class ProcessStatsService extends IProcessStats.Stub {
|
|||||||
mAm.mContext.enforceCallingOrSelfPermission(
|
mAm.mContext.enforceCallingOrSelfPermission(
|
||||||
android.Manifest.permission.PACKAGE_USAGE_STATS, null);
|
android.Manifest.permission.PACKAGE_USAGE_STATS, null);
|
||||||
Parcel current = Parcel.obtain();
|
Parcel current = Parcel.obtain();
|
||||||
|
synchronized (mAm) {
|
||||||
|
long now = SystemClock.uptimeMillis();
|
||||||
|
mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
|
||||||
|
mProcessStats.mTimePeriodEndUptime = now;
|
||||||
|
mProcessStats.writeToParcel(current, now, 0);
|
||||||
|
}
|
||||||
mWriteLock.lock();
|
mWriteLock.lock();
|
||||||
try {
|
try {
|
||||||
synchronized (mAm) {
|
|
||||||
long now = SystemClock.uptimeMillis();
|
|
||||||
mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
|
|
||||||
mProcessStats.mTimePeriodEndUptime = now;
|
|
||||||
mProcessStats.writeToParcel(current, now, 0);
|
|
||||||
}
|
|
||||||
if (historic != null) {
|
if (historic != null) {
|
||||||
ArrayList<String> files = getCommittedFiles(0, false, true);
|
ArrayList<String> files = getCommittedFiles(0, false, true);
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
@@ -476,18 +476,18 @@ public final class ProcessStatsService extends IProcessStats.Stub {
|
|||||||
public ParcelFileDescriptor getStatsOverTime(long minTime) {
|
public ParcelFileDescriptor getStatsOverTime(long minTime) {
|
||||||
mAm.mContext.enforceCallingOrSelfPermission(
|
mAm.mContext.enforceCallingOrSelfPermission(
|
||||||
android.Manifest.permission.PACKAGE_USAGE_STATS, null);
|
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();
|
mWriteLock.lock();
|
||||||
try {
|
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) {
|
if (curTime < minTime) {
|
||||||
// Need to add in older stats to reach desired time.
|
// Need to add in older stats to reach desired time.
|
||||||
ArrayList<String> files = getCommittedFiles(0, false, true);
|
ArrayList<String> files = getCommittedFiles(0, false, true);
|
||||||
|
|||||||
Reference in New Issue
Block a user