From f2e02b8ab0adb3ec2703e64438feec56075e7d58 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Thu, 24 Mar 2022 16:21:35 +0000 Subject: [PATCH] Adjust queue for test jobs. Test jobs should always be pulled first, so optimizing the iteration for batching won't work with tests. Skip the optimization when dealing with test jobs. Bug: 226554375 Test: atest FrameworksServicesTests:PendingJobQueueTest Change-Id: Icd55cb7f2f6efe00c87272f851661a964fb7c4d0 --- .../service/java/com/android/server/job/PendingJobQueue.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apex/jobscheduler/service/java/com/android/server/job/PendingJobQueue.java b/apex/jobscheduler/service/java/com/android/server/job/PendingJobQueue.java index f91472bdd160d..daf1ee10130d1 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/PendingJobQueue.java +++ b/apex/jobscheduler/service/java/com/android/server/job/PendingJobQueue.java @@ -182,8 +182,10 @@ class PendingJobQueue { if (earliestQueue != null) { final JobStatus job = earliestQueue.next(); // Change the front of the queue if we've pulled pullLimit jobs from the current head + // or we're dealing with test jobs // or the current head has no more jobs to provide. if (++mPullCount >= pullLimit + || (job != null && earliestQueue.peekNextOverrideState() != job.overrideState) || earliestQueue.peekNextTimestamp() == AppJobQueue.NO_NEXT_TIMESTAMP) { mOrderedQueues.poll(); if (earliestQueue.peekNextTimestamp() != AppJobQueue.NO_NEXT_TIMESTAMP) {