From 7d57ed88c9f5fec37fa149230d836fd11f6192df Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 25 Oct 2013 20:18:03 -0700 Subject: [PATCH] Always re-evaluate kernel alarm setpoints when a new alarm is added ...even if the new one is later than some other existing alarms. Bug 11392699 Change-Id: I80dccd76300acb4729f0337665b91e897a770571 --- .../java/com/android/server/AlarmManagerService.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index b70a34ec727ce..5ae9a6df01adc 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -577,16 +577,14 @@ class AlarmManagerService extends IAlarmManager.Stub { operation, workSource); removeLocked(operation); - boolean reschedule; int whichBatch = (isStandalone) ? -1 : attemptCoalesceLocked(whenElapsed, maxWhen); if (whichBatch < 0) { Batch batch = new Batch(a); batch.standalone = isStandalone; - reschedule = addBatchLocked(mAlarmBatches, batch); + addBatchLocked(mAlarmBatches, batch); } else { Batch batch = mAlarmBatches.get(whichBatch); - reschedule = batch.add(a); - if (reschedule) { + if (batch.add(a)) { // The start time of this batch advanced, so batch ordering may // have just been broken. Move it to where it now belongs. mAlarmBatches.remove(whichBatch); @@ -602,13 +600,10 @@ class AlarmManagerService extends IAlarmManager.Stub { + " interval=" + interval + " op=" + operation + " standalone=" + isStandalone); rebatchAllAlarmsLocked(false); - reschedule = true; } } - if (reschedule) { - rescheduleKernelAlarmsLocked(); - } + rescheduleKernelAlarmsLocked(); } private void logBatchesLocked() {