6466c1cc5efc4ff05fabdd670cf78a6a7ca45afb |
|
13-Jun-2017 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #62390590: SecurityException in JobIntentService$... ...JobServiceEngineImpl$WrapperWorkItem.complete When a job is in the process of stopping a job, we should no longer allow new work to be dispatched for it. Also there was an issue with how we determine wether a caller is valid for the current job -- this was only based on the uid of the currently running job, but of course that context could be re-used for a new job of the same uid. Instead, we now create a different callback binder for each client, so we can identify the exact client each time it calls back. (This also allows us to hang information about why the job last stopped on that client state, so we can always report it.) Finally make a bunch of classes final that should have been. Test: bit CtsJobSchedulerTestCases:* Change-Id: I1b00dd2da710414dd2898c4d39a5c528d54b95ea
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
3f2b6552ec00a69d5a818e3eadc985c45a416c6b |
|
15-May-2017 |
Michael Wachenschwanz <mwachens@google.com> |
Purge Nonexistent User Jobs on Boot In the case that a user has been removed but their jobs still exist on disk, the JobSchedulerService will remove all jobs not associated with current users on boot. Exposed UserManagerService#getUserIds() via UserManagerInternal for quick user id retrieval. Fixes: 38261977 Test: manual Change-Id: Id4b3c0a4142b4818fcd875eef18ea03f3c45ca40 Signed-off-by: Michael Wachenschwanz <mwachens@google.com>
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
c75bd416e9e8131f773bd0e6f89c2495d531917a |
|
13-May-2017 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #38210653: Few more tweaks of job scheduler" into oc-dev
|
bfc2331f2f0bee2c12fe8f9cc8a2f3cca05feb86 |
|
11-May-2017 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #38210653: Few more tweaks of job scheduler - Now keep track of the time a job was enqueued, and order the pending list by that. - Added configuration constants for rescheduling: maximum times to reschedule, minimum backoff times. - Fixed printing of active jobs -- the method to get the current JobStatus was old and didn't require the caller to hold a lock, so made a copy, which didn't contain all the data we were interested in. Now with our simple locking, we can just make that require the caller hold a lock and return the real JobStatus object. - Include oom_adj and procstate when printing information about processes being killed. - Expanded documentation of BroadcastReceiver.goAsync(). Test: bit CtsJobSchedulerTestCases:* Change-Id: I2e45f181e45be9836c74cbff1b844ffdf6e93019
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
1399377a3455327c938ab50e5d1b0494ca57552f |
|
12-May-2017 |
Michael Wachenschwanz <mwachens@google.com> |
Fix JobSet getJobsByUser Retrieve jobs from SparseArray with index using valueAt rather than get (which uses keys not indices) Fixes: 38198221 Test: manual Change-Id: I636f5e0ef43456619700e27944eb6c2d65021643 Signed-off-by: Michael Wachenschwanz <mwachens@google.com>
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
60977f42dbbcf6edfd9b18fdd08af54006860d90 |
|
13-Apr-2017 |
Christopher Tate <ctate@google.com> |
Introduce NETWORK_TYPE_METERED job constraint When your job wants non-WiFi connectivity. Bug 37219369 Test: CTS Change-Id: I0981938061b6b7f354e7236221552ef03976f470
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
7da13d7c3e5b48c0410ae869c5679652de97e5aa |
|
05-Apr-2017 |
Dianne Hackborn <hackbod@google.com> |
Add new "work queue" feature to JobScheduler. This gives semantics similar to the start command queue of services. The implementation is currently lacking in URI permission grant handling of the work intents; that will be coming in a follow-up change. This includes a first step of adjusting/fixing locking within JobSchedulerService. The JobServiceContext class has a bunch of stuff it does that assumes it doesn't need locking because it schedules the work on a handler. However, to be able to correctly implement the work finish flow (that takes care of stopping the job when there is no more work), we can't dispatch these asynchronously so need to get rid of that and just do explicit locking. The switch to explicit locking is half-way there (again the remaining part will be a follow-on CL). Right now we have the locking, but still also the handler. But it turns out there were a number of things we were doing without a lock held where we actually should have been holding a lock, so this is better anyway. Test: new tests added Change-Id: Iebd098046209b28e60fd2f4d855d7f91cd3a8b03
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
a47223f99b6b7ade4ae909c458d975eb487062b3 |
|
30-Mar-2017 |
Dianne Hackborn <hackbod@google.com> |
Implement issue #36590595: Add ability to associated a ClipData with JobInfo Yum! Also needed to have a Context.revokeUriPermission() variant that is sane, so reasonable CTS tests can be written. Test: new ClipDataJobTest added. Change-Id: Ia3135ea788a6e32c971bae7dab3a844d0ef4139c
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
a06ec6a9435f9555142e700f54cf20278bc1982f |
|
13-Feb-2017 |
Dianne Hackborn <hackbod@google.com> |
Add new job scheduler constraints for "battery not low". Clean up the implementation of boolean constraints so that they are in a single flags value that gets propagated all of the way from JobInfo.Builder in to the JobStatus. Much simpler and easier to add new constraints! Also introduce some shell commands to make it easier to write tests against the job scheduler (and other things tied to power). One of the big things here is that there is a new sequence number that propagates with battery updates, which we can look for in the job scheduler to determine when a change the test has made to battery state has actually gotten applied, to allow it to safely and minimally wait until executing the condition being tested. Test: New BatteryConstraintTest suite added. Change-Id: I11076d90b80ec25ee604c29b6a6dc2337fd867ce
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
576430f36ac04843fed5697ecae1716489c164bb |
|
01-Jun-2016 |
Dianne Hackborn <hackbod@google.com> |
Merge "Work on issue #28942589: Tune job scheduler" into nyc-dev am: 438693dd6c * commit '438693dd6cc4e3fe2ffb336d551c0d69e9546102': Work on issue #28942589: Tune job scheduler Change-Id: I9e4ddcc64d84a8d943128d8bd8ebf158743c5549
|
e9a988caca733d2f292991a52a0047685a69812f |
|
28-May-2016 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #28942589: Tune job scheduler We now have a new settings key that provides all of the existing tuning parameters, plus some newly redone ones for dealing with different memory levels. Changed the minimum batching for overall jobs from 2 to 1, so we will never get in the way of immediately scheduling jobs when the developer asks for this. We should now be able to rely on the doze modes to do better batching of jobs for us when it is really important. Also work on issue #28981330: Excessive JobScheduler wakeup alarms. Use a work source with scheduled alarms to blame them on the app whose job they are being scheduled for, and add a check for whether a job's timing constraint has been satisfied before considering it a possible candidate for the next alarm. (If it is satisified, the time is in the past, so we should not schedule an alarm for it.) Finally clean up a bunch of the dumpsys output to make it easier to understand. Change-Id: I06cf2c1310448f47cf386f393e9b267335fabaeb
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
478806946ff96b41545ecba704de56f0344f3795 |
|
30-Apr-2016 |
Jeff Sharkey <jsharkey@android.com> |
Merge "Flag to mark foreground jobs, fix data saver." into nyc-dev am: 9a977b7d45 * commit '9a977b7d45df0d3d59c5eec7f9534c3bd5fcd91d': Flag to mark foreground jobs, fix data saver. Change-Id: I908d725a84e9590d0da38a586b066a63473d4f28
|
1b6519bd87a59a10e9928e5772a17976692611da |
|
28-Apr-2016 |
Jeff Sharkey <jsharkey@android.com> |
Flag to mark foreground jobs, fix data saver. When a job will eventually run in the foreground, the internal scheduling needs to ignore any background network restrictions when satisfying constraints. This also means the job should ignore the current device doze state, since the requesting app could get the same behavior by starting their own foreground service. Always dispatch network policy changes to ConnectivityService first to ensure that it has up-to-date information. Fix bugs around data saver that were causing networks to not be marked as BLOCKED for background apps; before this fix apps would have been spinning in internal connectivity loops, thinking that the network was actually connected when the kernel was actually blocking their traffic. Offer new ConnectivityService method overloads to ignore the blocked state for a specific UID. Print unsatisfied job constraints to aid debugging. Bug: 26571724 Change-Id: Iaaa17933e6dc1bf6d3dff26d0bfc12222e51e241
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
5df7298c590e97bc73ebf0d3ceda9ab8f809a136 |
|
25-Apr-2016 |
Jeff Sharkey <jsharkey@android.com> |
resolve merge conflicts of c79a568 to nyc-dev-plus-aosp Change-Id: I3ee02bc596f285fa41ffcafa882ae5997ef67d22
|
f07c7b9fd0a640bff4bf7690373613da217fe69b |
|
22-Apr-2016 |
Jeff Sharkey <jsharkey@android.com> |
API changes for DownloadManager and JobScheduler. To support moving DownloadManager, add new JobScheduler network type constraint that matches "any network except roaming." Also add an API to get a specific JobInfo by ID. Since the default network can be different on a per-app basis, and individual apps may be blocked due to app standby, evaluate job connectivity constraints on a per-UID basis. To implement this cleanly, add NetworkInfo.isMetered() to match the isRoaming() API. Add new DownloadManager APIs to support charging and device idle constraints, which are plumbed through to JobScheduler under the hood when scheduled. Add filtering to JobScheduler dumpsys to omit noisy details for packages the caller isn't interested in. Bug: 28098882, 26571724, 19821935 Change-Id: I09ca7184ef7ce6adba399f579d415a5fb2ea6110
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
28532d00267c73b8e0fa5235169fa72c414e1cd0 |
|
21-Apr-2016 |
Tobias Thierer <tobiast@google.com> |
frameworks/base: Avoid Long object allocations in Long.valueOf() Replace usages where the Long is immediately unboxed or thrown away with Long.parseLong(). In TaskRecord.java, I also fixed up similar uses of {Boolean,Integer}.valueOf() Tested: built frameworks/base successfully. Bug: 28289401 (cherry picked from commit 4bd017d6a5437f153b2b0a149a5dde0b85bf6907) Change-Id: Icfa4708946e774f4a1bacf185c3fd11a7087017e
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
a09b4d2a611a7606e8fc8c73a24bd941b6fc173f |
|
15-Apr-2016 |
Narayan Kamath <narayan@google.com> |
Remove unnecessary allocation+unboxing of objects. Transforming String->int can be done with 0 allocations using Integer.parseInt. bug: 28078871 Change-Id: I8d9f322d7154728849dde61ef282046032858d60
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
cbf5ae92e70ed49f18b9e7454dc28d489b3d33a4 |
|
08-Mar-2016 |
Shreyas Basarge <snb@google.com> |
Remove SyncManager's local job cache SyncManager maintains a local copy of all scheduled syncs. This was done so that we don't have to query JobScheduler every time we need to go through the syncs to reschedule them, etc. Keeping JobScheduler's job list and the SyncManager's copy in sync is messy. Not keeping a copy with SyncManager would also allow JobScheduler to drop jobs based on an app being uninstalled or other external events. Here, a function to query all pending jobs scheduled by the system process is exposed from JobScheduler and SyncManager uses it instead of maintaining a copy of its own. Change-Id: I723dbb3835a0f9c7e8844483004e7b0f7f340daf
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
0213ace0140376b90d6824caad3f4035ee25651e |
|
24-Feb-2016 |
Christopher Tate <ctate@google.com> |
Reintroduce per-app scheduled job limits There was a period of interim deployments during which sync-manager jobs were not properly attributed to the package whose sync operations were being driven. This situation is now corrected when it is encountered. Bug 27335118 Change-Id: Iafc40c80093499447b2e62a4888e3ece0371bfcb
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
1085ff6ee531931ef7f55cbadbc83616f619b292 |
|
24-Feb-2016 |
Dianne Hackborn <hackbod@google.com> |
Work towards issue #26390161: Throttle syncs/jobs when system is low on RAM First, we need to make the job scheduler prioritize jobs for foreground apps over background apps (so we will degrade well when we are limiting the number of concurrent jobs). So now the job scheduler keeps track of the process state of each uid, and uses that to bump up the priority of jobs associated with foreground uids. Added constants for priorities since we have different places specifying priorities. Also cleaned up a bit of the reporting of "wrapped" jobs from the sync manager -- there is a new tag argument that can be supplied, to have the name and tag used in various places be based on that instead of the useless internal class name. Change-Id: I8781750ddfac1472a98e1873fc38c014425db3d6
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
2f36fd6fc94b62b8ccd03cdcea89826d05414f93 |
|
19-Feb-2016 |
Christopher Tate <ctate@google.com> |
Limit scheduled jobs to 100 per app Packages that are entitled to schedule jobs on behalf of other uids are not subject to the limit. Also break the JobStore's monolithic set of jobs into per-uid slices for efficiency and orthogonality. Bug 27150350 Change-Id: I8f5f718bf200d55f9977a6fc53b7f617e7652ad9
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
b0001f6fb1383d9824c2733896b0b348e7f77240 |
|
16-Feb-2016 |
Dianne Hackborn <hackbod@google.com> |
Remove internal locking from JobStatus. Now all state of JobStatus is implicitly protected by the lock of whoever is using it -- in this case the global lock for the JobSchedulerService. This allows us to remove all of the atomic variables and just replace those with a simple bit field. The required constraints for a job are now statically defined once a JobStatus is created, and don't change. (They wouldn't change before, but now this is absolutely specified to be the case.) This required tweaking the constructors a bit so that the earliest and latest run times are computed as part of the core class initialization. Also clarified methods on StateController that are called with the lock held, and took advantage of that in the various controllers to not now redundantly re-acquire the lock. Change-Id: I595c5e7d1bff1bd2ff906d612581af82878a25ee
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
33d31c5b70c7d056e799e34bb6eccbe6939714ea |
|
16-Feb-2016 |
Dianne Hackborn <hackbod@google.com> |
Simplify job scheduler service locking. Unify all locks to just one lock protecting the entire service. There is really no need for more complicated locking -- there is nothing in the code that can take a long time to complete. And having a single lock will allow various parts of the code to be much simpler and easier to maintain. This is just the first step of the change, switching all of the locking to use one lock. With this done, we can now start simplifying the code. For example, JobStatus no longer needs to do any locking (or have atomic variables and such), it can just rely on its callers holding the global service lock. Change-Id: I502916ed7f2994b601750c67a59a96b1a4e95c6d
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
8e64e2e6a4d2964b6a4147f5cccd03de934c86cd |
|
12-Feb-2016 |
Shreyas Basarge <snb@google.com> |
Fixes JobScheduler not persisting flex and sourcePackage There was a bug with persisteing and restoring flex and sourcePackage. Fixed it and added tests. Change-Id: Ie8e4714b4727ecef4254773fd4339b28f4a47c01
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
73f1025f2d01490ca580312cae28279cf614c85e |
|
11-Feb-2016 |
Shreyas Basarge <snb@google.com> |
Fix for JobScheduler dropping periodic jobs Skip writing to disk when a periodic job is removed from jobStore after it completes execution. Change-Id: Ib4f2cf18554bf9c87138c1984c96cc62f8dbf7e2 Bug: 27147454
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
1a30bd9b13fd127d9bbfdc5fd4cb2f80ab7ece21 |
|
11-Jan-2016 |
Dianne Hackborn <hackbod@google.com> |
Add and implement JobScheduler content observer APIs. Allows one to schedule jobs to run when content URIs change, and find out what changed when the job executes. This required adding a new API to StateController to tell it when we are about to start executing a job, so we can transfer the currently collected changes out of its internal state to fill it in to the JobParameters. Also some additional dumpsys debug output to help understand what is going on in the job scheduler. Change-Id: I91f51b226ff4add7a271a8333beffa5e86c7bf18
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
968ac75c2048214a28e9eac3d0e2e0d23776f887 |
|
12-Jan-2016 |
Shreyas Basarge <snb@google.com> |
Adds sourcePackageName field to JobStatus Platform apps can schedule a job on behalf of some other package. Battery stats and appIdleState will be computed using sourcePackageName. Change-Id: If52f6e1db3a563ef0854d1f59fbc6088a0c29ad1
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
17971e383f97db0d398b86ae537448605f70894e |
|
15-Jan-2016 |
Shreyas Basarge <snb@google.com> |
Merge "Added priority to JobScheduler scheduling"
|
5db09084c8e4efc6311754243c39962fc8e7a766 |
|
07-Jan-2016 |
Shreyas Basarge <snb@google.com> |
Added priority to JobScheduler scheduling Priority can be assigned to jobs. Higher priority jobs can preempt lower priority ones. Reason for calling onStopJob (timeout, preempt, etc.) is set on the JobParameters object. Reference: https://docs.google.com/document/d/1fuVO5rBCkODx8wjk6uulFCP1Uzfx7IVsw2EyKKrGqVA Change-Id: Ic36016514cec076984d44086316d8d00d896b3aa
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
89ee618280ea05e193afab38f9d2bf99b8274a92 |
|
17-Dec-2015 |
Shreyas Basarge <snb@google.com> |
Flex time for periodic jobs in JobScheduler A periodic job will start only within time satisfying period - flex < time % period < period. Bug: 26254850 Change-Id: I97a840446e5592e5151d784800855d909f1790b8
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
d09973bc35e07dcd9985793cb03c134556cef1b4 |
|
16-Dec-2015 |
Shreyas Basarge <snb@google.com> |
Fixes NPE bug in JobScheduler.getAllPendingJobs() The extras persistable bundle in JobInfo is parcelled/unparcelled from different threads simultaneously for IPC and persisting jobInfo. The extras bundle in now copied before writing it to disk. Bug: 25344172 Change-Id: Ia190181c869d3e5d216dccee9637d3d3a4fb5cb3
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
7ef490fab68ee93f92eb5728cc4d3cb691315412 |
|
03-Dec-2015 |
Shreyas Basarge <snb@google.com> |
Fix for non persisted jobs being persisted Bug: 25905179 Change-Id: I5e836f9894089aa8acc1bde382674e29402f0a60
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
fa8e5084eed63ab8d92c71fcff656690a30293c3 |
|
16-Oct-2015 |
Matthew Williams <mjwilliams@google.com> |
Sanity check loaded periodics and cap runtime. BUG: 24900376 We've seen an issue where periodic run times can be massively inflated after loading from disk. As a safeguard, cap the period's loaded runtime to be [p, 2p] from the time of loading. Change-Id: Ie4464490c8d6702fee8efe9190c3da5dc5f013f6
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
98bfb3466c4bd433a35e5da55ba6cd5eb652d050 |
|
30-Jul-2015 |
riddle_hsu <riddle_hsu@htc.com> |
Fix NPE in JobStore when jobs.xml is empty. It is possible that jobs.xml does not have valid content if the device meet unexpected power off or reboot during writing the file, then parser.getName() may get null string on next boot. Because log does not allow to print null message. It will result boot fail: Caused by: java.lang.NullPointerException: println needs a message at android.util.Log.println_native(Native Method) at android.util.Slog.d at com.android.server.job.JobStore $ReadJobMapFromDiskRunnable.readJobMapImpl Change-Id: Icd485096e2f00f4028428a9ad95cd0ef66b2dca0
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
4f11754f72ac4c60448b36a1a933cdc2d7bc1870 |
|
08-May-2015 |
Wojciech Staszkiewicz <staszkiewicz@google.com> |
Pass charset to XmlPullParser.setInput instead of null Passing null to XmlPullParser.setInput forces it to do additional work, which can be easily avoided if we know the charset beforehand. bug: b/20849543 (cherry picked from commit 9e9e2e73c6ec7bece20268196dc89ad0c8bafad4) Change-Id: Iaff97be9df2d0f99d7af8f19f65934439c9658e2
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
48a30db75dd0eedf8e065c89825b2af86a381b62 |
|
23-Sep-2014 |
Matthew Williams <mjwilliams@google.com> |
Fix lock ordering in JobScheduler BUG: 17625667 Two part clean-up. 1) Don't try to lock in onControllerStateChanged. Do it in the handleMessage instead where the rest of the locking is. This is sufficient to fix this bug. 2) The other side of the deadlock came b/c we lock when cancelling and calling stopTrackingJob. Controllers handle their own locking so this isn't necessary. B/c of a potential race from the controller side, added an explicit check for the JSS to only run an expired job if it still exists. Change-Id: Iaeebbc19437eb5b73e3ced3168f1fc13e564a4be
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
d1c06753d045ad10e00e7aba53ee2adba0712ccc |
|
22-Aug-2014 |
Matthew Williams <mjwilliams@google.com> |
Implement API review feedback for JobScheduler BUG: 17005336 Took the opportunity to clean up some back-off logic Change-Id: Ibc8ae34d1d44dd064ba071e4cbad17872f7e38cf
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
01ac45b6ff2334925c8d24b5278b44e5e30f5622 |
|
23-Jul-2014 |
Matthew Williams <mjwilliams@google.com> |
Fix JobScheduler race condition The loading of jobs from disk is now done sychronously. Bug: 16372824 Change-Id: Ica0592d6de51e89662c9e49ed1eb59209b64356c
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
fdb1956ff71ff57fcdaafaaeb7f42c19de3d7c2f |
|
12-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #15681802: Missing RESET:TIME in complete battery histories But wait, there's more! - Keep track of sync durations in the aggregated stats. - Add events for users that are running and in the foreground. - Rework the activity manager's tracking of stuff using battery in the background to be based on proc stats, which allows it to be better about determing when it should reset its tracking of background work. - Also add tracking of scheduled job execution, like we are doing for syncs. - And once I started hooking battery stats in to JobSchedulerService, I found a few things I couldn't stop myself from changing: (1) make it very explicit that it doesn't start scheduling jobs until we have reached the point in system boot where third party apps are allowed to run, and (2) adjust the various for loops to not use iterators. Change-Id: I69d812e27bcfee9e58a614f0f6b1c7545d7530b1
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
900c67fc51fc2672458dd1c9641250f2ecc01a31 |
|
09-Jul-2014 |
Matthew Williams <mjwilliams@google.com> |
Add job persistance as a setter in the API Bug: 15936795 Change-Id: I11e5a722bab5838dc151670256ed09dfaa7fdaa7
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
49a85b64f7c29a5dfbf27112ff22987b85c59338 |
|
12-Jun-2014 |
Matthew Williams <mjwilliams@google.com> |
JobScheduler blocking main thread. Bug:15589789 Fixed deadlock from lock ordering. Also, before doing I/O we now copy the list of jobs with the lock, but release the lock before starting the write. Change-Id: I1ed6141be8fc506abe2684d2894b255c714e29ba
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
b7b70f0f99f2b8e51e03fa55c5005e62f7fd1447 |
|
11-Jun-2014 |
Christopher Tate <ctate@google.com> |
Fix build Change-Id: I339f7f1ab82af699ee34c3baf824d0278477a4cf
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|
7060b04f6d92351b67222e636ab378a0273bf3e7 |
|
10-Jun-2014 |
Christopher Tate <ctate@google.com> |
Out with the old; in with the new Switch to the official "JobScheduler" etc naming. Bug 14997851 Change-Id: I73a61aaa9af0740c114d08188bd97c52f3ac86b7
/frameworks/base/services/core/java/com/android/server/job/JobStore.java
|