)]}'
{
  "commit": "9cdaea907e595b02a2732294a02dc1e44adfa125",
  "tree": "871daae0885b2949bb1e5499e15426678c7efceb",
  "parents": [
    "6fb1b6081d3c04060102ea5d4e3951e2b8b5a5ab"
  ],
  "author": {
    "name": "Jiakai Zhang",
    "email": "jiakaiz@google.com",
    "time": "Thu May 30 13:49:39 2024 +0100"
  },
  "committer": {
    "name": "Treehugger Robot",
    "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
    "time": "Wed Jun 05 17:45:27 2024 +0000"
  },
  "message": "Use a lock to serialize mutations to the Pre-reboot global state.\n\nPreviously, we used a single-threaded executor to serialize mutations.\nThis was feasible because PreRebootDexoptJob only exposed 3 APIs.\nHowever, as we are adding more and more APIs, especially an API for\nrunning Pre-reboot Dexopt synchronously, without going through the job\nscheduler, it becomes harder and harder to make things correct with the\nsingle-threaded executor approach. This CL reimplements serialization\nwith a lock.\n\nBug: 311377497\nTest: atest ArtServiceTests:com.android.server.art.PreRebootDexoptJobTest --iterations 10\nChange-Id: I8f61b979a29f4acc9de77336179d23e367b9c2c4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d35004c3f687502668e3332fda96e60b4520e31d",
      "old_mode": 33188,
      "old_path": "libartservice/service/java/com/android/server/art/PreRebootDexoptJob.java",
      "new_id": "455d92bc029d9b8d3ca55ee04bc2eb0859d6b1de",
      "new_mode": 33188,
      "new_path": "libartservice/service/java/com/android/server/art/PreRebootDexoptJob.java"
    },
    {
      "type": "modify",
      "old_id": "0af1ef13ec352be75af65b319a9292f035e17256",
      "old_mode": 33188,
      "old_path": "libartservice/service/javatests/com/android/server/art/PreRebootDexoptJobTest.java",
      "new_id": "da1ad112b6251f3c794e76a35c15e1513787222e",
      "new_mode": 33188,
      "new_path": "libartservice/service/javatests/com/android/server/art/PreRebootDexoptJobTest.java"
    }
  ]
}
