Close preemption loop.
Prior to this change, whenever we preempted a job, the preempted job would be stopped, but then we wouldn't explicitly start the higher priority job until we re-evaluated all jobs and regenerated the pending job list. This was inefficient. Now, whenever a job finishes (via preemption or any other ending), JobConcurrencyManager will immediately give the JobServiceContext a new job to start, if limits allow. Bug: 178119369 Test: atest CtsJobSchedulerTestCases Test: atest FrameworksMockingServicesTests:JobSchedulerServiceTest Test: atest FrameworksServicesTests:PrioritySchedulingTest Test: atest FrameworksServicesTests:WorkCountTrackerTest Test: atest FrameworksServicesTests:WorkTypeConfigTest Change-Id: I00a1aca6a3ec42cf6b62712313fa4d1698e34f51
Showing
- apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java 146 additions, 1 deletion...ce/java/com/android/server/job/JobConcurrencyManager.java
- apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java 2 additions, 6 deletions...vice/java/com/android/server/job/JobSchedulerService.java
- apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java 6 additions, 2 deletions...ervice/java/com/android/server/job/JobServiceContext.java
- services/tests/servicestests/src/com/android/server/job/WorkCountTrackerTest.java 86 additions, 4 deletions...ests/src/com/android/server/job/WorkCountTrackerTest.java
Loading
Please register or sign in to comment