Loading services/core/java/com/android/server/job/JobServiceContext.java +1 −2 Original line number Diff line number Diff line Loading @@ -481,11 +481,10 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne */ private void closeAndCleanupJobH(boolean reschedule) { removeMessages(MSG_TIMEOUT); mCompletedListener.onJobCompleted(mRunningJob, reschedule); synchronized (mLock) { mWakeLock.release(); mContext.unbindService(JobServiceContext.this); mCompletedListener.onJobCompleted(mRunningJob, reschedule); mWakeLock = null; mRunningJob = null; mParams = null; Loading services/core/java/com/android/server/job/JobStore.java +10 −4 Original line number Diff line number Diff line Loading @@ -262,16 +262,23 @@ public class JobStore { @Override public void run() { final long startElapsed = SystemClock.elapsedRealtime(); List<JobStatus> mStoreCopy = new ArrayList<JobStatus>(); synchronized (JobStore.this) { writeJobsMapImpl(); // Copy over the jobs so we can release the lock before writing. for (JobStatus jobStatus : mJobSet) { JobStatus copy = new JobStatus(jobStatus.getJob(), jobStatus.getUid(), jobStatus.getEarliestRunTime(), jobStatus.getLatestRunTimeElapsed()); mStoreCopy.add(copy); } } writeJobsMapImpl(mStoreCopy); if (JobSchedulerService.DEBUG) { Slog.v(TAG, "Finished writing, took " + (SystemClock.elapsedRealtime() - startElapsed) + "ms"); } } private void writeJobsMapImpl() { private void writeJobsMapImpl(List<JobStatus> jobList) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); XmlSerializer out = new FastXmlSerializer(); Loading @@ -281,8 +288,7 @@ public class JobStore { out.startTag(null, "job-info"); out.attribute(null, "version", Integer.toString(JOBS_FILE_VERSION)); for (int i = 0; i < mJobSet.size(); i++) { final JobStatus jobStatus = mJobSet.valueAt(i); for (JobStatus jobStatus : jobList) { if (DEBUG) { Slog.d(TAG, "Saving job " + jobStatus.getJobId()); } Loading Loading
services/core/java/com/android/server/job/JobServiceContext.java +1 −2 Original line number Diff line number Diff line Loading @@ -481,11 +481,10 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne */ private void closeAndCleanupJobH(boolean reschedule) { removeMessages(MSG_TIMEOUT); mCompletedListener.onJobCompleted(mRunningJob, reschedule); synchronized (mLock) { mWakeLock.release(); mContext.unbindService(JobServiceContext.this); mCompletedListener.onJobCompleted(mRunningJob, reschedule); mWakeLock = null; mRunningJob = null; mParams = null; Loading
services/core/java/com/android/server/job/JobStore.java +10 −4 Original line number Diff line number Diff line Loading @@ -262,16 +262,23 @@ public class JobStore { @Override public void run() { final long startElapsed = SystemClock.elapsedRealtime(); List<JobStatus> mStoreCopy = new ArrayList<JobStatus>(); synchronized (JobStore.this) { writeJobsMapImpl(); // Copy over the jobs so we can release the lock before writing. for (JobStatus jobStatus : mJobSet) { JobStatus copy = new JobStatus(jobStatus.getJob(), jobStatus.getUid(), jobStatus.getEarliestRunTime(), jobStatus.getLatestRunTimeElapsed()); mStoreCopy.add(copy); } } writeJobsMapImpl(mStoreCopy); if (JobSchedulerService.DEBUG) { Slog.v(TAG, "Finished writing, took " + (SystemClock.elapsedRealtime() - startElapsed) + "ms"); } } private void writeJobsMapImpl() { private void writeJobsMapImpl(List<JobStatus> jobList) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); XmlSerializer out = new FastXmlSerializer(); Loading @@ -281,8 +288,7 @@ public class JobStore { out.startTag(null, "job-info"); out.attribute(null, "version", Integer.toString(JOBS_FILE_VERSION)); for (int i = 0; i < mJobSet.size(); i++) { final JobStatus jobStatus = mJobSet.valueAt(i); for (JobStatus jobStatus : jobList) { if (DEBUG) { Slog.d(TAG, "Saving job " + jobStatus.getJobId()); } Loading