)]}'
{
  "commit": "d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1",
  "tree": "c687eda00e2c45823cdb1857c64ad48b67578819",
  "parents": [
    "615364792b6fe07869c685e4bccbf7837e1ba97b"
  ],
  "author": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Fri Aug 21 17:10:39 2020 -0700"
  },
  "committer": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Tue Aug 25 13:33:12 2020 -0700"
  },
  "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "509e0630580a1b43f539d4fade8b60762d04d091",
      "old_mode": 33188,
      "old_path": "media/libaudioclient/AudioRecord.cpp",
      "new_id": "d6671e3664e8117e4131247df6deb1cba688986a",
      "new_mode": 33188,
      "new_path": "media/libaudioclient/AudioRecord.cpp"
    },
    {
      "type": "modify",
      "old_id": "34bdac53eac255a482c7fb8a0f87461ec1f80457",
      "old_mode": 33188,
      "old_path": "services/audioflinger/AudioFlinger.cpp",
      "new_id": "36dc1dbc4652171e0264fb97d2cbaec068f32224",
      "new_mode": 33188,
      "new_path": "services/audioflinger/AudioFlinger.cpp"
    },
    {
      "type": "modify",
      "old_id": "affc09e8965e2ff3b086a8908586e7c2ace52c87",
      "old_mode": 33188,
      "old_path": "services/audioflinger/Threads.cpp",
      "new_id": "75f07435a4b7f61380d581f7bf21a8e7702918ea",
      "new_mode": 33188,
      "new_path": "services/audioflinger/Threads.cpp"
    },
    {
      "type": "modify",
      "old_id": "c92bce5b4029949718dc1142cf9dc744fc760867",
      "old_mode": 33188,
      "old_path": "services/audioflinger/Tracks.cpp",
      "new_id": "ed285daa5ce10ea169a0a0d7e6b92db087084999",
      "new_mode": 33188,
      "new_path": "services/audioflinger/Tracks.cpp"
    },
    {
      "type": "modify",
      "old_id": "84687fdb7afcdbf2849bef34f928507e0f1bdbf6",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/managerdefault/AudioPolicyManager.cpp",
      "new_id": "f8122e8c712ad6ae5bcbda677e4471eec5d8c409",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/managerdefault/AudioPolicyManager.cpp"
    }
  ]
}
