diff options
author | Christopher Tate <ctate@google.com> | 2013-10-25 20:18:03 -0700 |
---|---|---|
committer | Christopher Tate <ctate@google.com> | 2013-10-28 10:34:54 -0700 |
commit | 7d57ed88c9f5fec37fa149230d836fd11f6192df (patch) | |
tree | 18e50e87915ddc5a30c636eaffb37e7c06b328dc /services/java | |
parent | 6364c26cb385ea654b7c8af8a1ef2f5cb4a556c2 (diff) | |
download | frameworks_base-7d57ed88c9f5fec37fa149230d836fd11f6192df.zip frameworks_base-7d57ed88c9f5fec37fa149230d836fd11f6192df.tar.gz frameworks_base-7d57ed88c9f5fec37fa149230d836fd11f6192df.tar.bz2 |
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
Diffstat (limited to 'services/java')
-rw-r--r-- | services/java/com/android/server/AlarmManagerService.java | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index b70a34e..5ae9a6d 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() { |