)]}'
{
  "commit": "1e95e82b4163ee7931a7d46fc10cf8108922b65b",
  "tree": "e195458d7a09550045c526f3c50313c0dd883501",
  "parents": [
    "8de59300aef1dd3c4e3bff6fb27a72205ec2b726"
  ],
  "author": {
    "name": "Geoff Lang",
    "email": "geofflang@chromium.org",
    "time": "Wed Nov 05 11:54:32 2025 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Nov 05 11:54:32 2025 -0800"
  },
  "message": "Avoid holding the device lock in CreatePipelineAsyncEvent callbacks.\n\nGather the arguments needed for mCallback and then release the device\nlock before calling it. If mCallback is reentrant and releases the\ndevice, DeviceBase::FlushCallbackTaskQueue assumes that the lock is not\nheld.\n\nBug: 448426209, 448892602, 442827275\nChange-Id: I378d6f44800d426c05974369f584a9aaccc6b00b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/271455\nCommit-Queue: Geoff Lang \u003cgeofflang@chromium.org\u003e\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a40feb262a1889e323c62f9b620d11e9c4a3a975",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CreatePipelineAsyncEvent.cpp",
      "new_id": "3fdc988dde7ea18e23d2983b9aeb4bcfd0039c12",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CreatePipelineAsyncEvent.cpp"
    },
    {
      "type": "modify",
      "old_id": "43165e5f3e9d45951a8d583fb00dbe02af6cf30d",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/DeviceLifetimeTests.cpp",
      "new_id": "82d085cfec1bdafc0818c27a69a2498e61717f4e",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/DeviceLifetimeTests.cpp"
    }
  ]
}
