)]}'
{
  "commit": "2bf640bbd9f73e703855650d02f844e7e485a927",
  "tree": "fb01da3f0341a75cf7b6880b6f7f6cf3de170056",
  "parents": [
    "fff9da283d91a8bce372a247fda3771f0a7e7ac7"
  ],
  "author": {
    "name": "Loko Kung",
    "email": "lokokung@google.com",
    "time": "Mon Jan 05 15:20:09 2026 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jan 05 15:20:09 2026 -0800"
  },
  "message": "[dawn][d3d] Adds loop for WaitForMultipleObjects with INFINITY.\n\n- Adding the loop addresses the reverted workaround.\n- Also includes a small fix for potential race in spontaneous\n  event handling.\n- Re-enables all the related tests now that they seem to be\n  passing fine now on the arm64 Qualcomm devices with this fix.\n- Also reverts \"Fix MapAsyncAndWait use-after-free\"\n  commit 37905ab50503cb442aac9a8a28ac7306416dee39.\n\nOriginal change\u0027s description:\n\u003e Fix MapAsyncAndWait use-after-free\n\u003e\n\u003e Fixes an issue where the callback registered in\n\u003e DawnTestBase::MapAsyncAndWait could cause an access violation during\n\u003e global test teardown due to trying to run a callback that was allocated\n\u003e on the stack and had already gone out of scope. This only occurred when\n\u003e instance.WaitAny() timed out, which would cause the callback to still\n\u003e be around until the instance got destroyed and ensured that all pending\n\u003e callbacks were complete.\n\u003e\n\u003e Now, the actual callback to run is provided via a shared_ptr and the\n\u003e lambda provided to buffer.MapAsync() checks if it is null before running\n\u003e it. After instance.WaitAny() returns but before we make any asserts, we\n\u003e set the pointer to null, preventing the soon-to-be-dangling pointer from\n\u003e being used in the future.\n\u003e\n\u003e This is meant as a temporary workaround, as WaitAny() should always run\n\u003e the provided callback. This can be reverted once the underlying issue\n\u003e is fixed.\n\u003e\n\u003e Bug: 459864803, 460743383\n\u003e Change-Id: I5384e74ff6ab9da6104b07e6d9d235bf5d4b40c2\n\u003e Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/273736\n\u003e Commit-Queue: Brian Sheedy \u003cbsheedy@google.com\u003e\n\u003e Reviewed-by: Loko Kung \u003clokokung@google.com\u003e\n\u003e Auto-Submit: Brian Sheedy \u003cbsheedy@google.com\u003e\n\u003e Reviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\n\nBug: 459864803, 460743383, 461837996, 469328928, 465497435\nChange-Id: Iabf26a66fbd6c92bf788a283c05b64d72e6f12ee\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/277975\nReviewed-by: Brian Sheedy \u003cbsheedy@google.com\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\nAuto-Submit: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3adf9754f3c800a905f71d06039ab7bf6c60028e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/EventManager.cpp",
      "new_id": "c5d37cb788b7d992c042a120b011e29d6aeddc5e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/EventManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "5777c2ea9bd50135820fca8fa3b86bbe19ccd7f3",
      "old_mode": 33188,
      "old_path": "src/dawn/native/WaitAnySystemEvent.h",
      "new_id": "768e3609c7133484b80eba8e13205f28753279d9",
      "new_mode": 33188,
      "new_path": "src/dawn/native/WaitAnySystemEvent.h"
    },
    {
      "type": "modify",
      "old_id": "cb77776107e6b222f5c7b621e7a7812f7b8c7691",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/DawnTest.cpp",
      "new_id": "3ddf9368d1ccb580b1fa7d0e368f6b353f0520f4",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/DawnTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "6700fc28b54e3404dab4f2314476daef246b0cfe",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferTests.cpp",
      "new_id": "c7ae1744d2fb5d9d4b42ff5dd568ff9a0b033a47",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "14a275a7f531fc3bd36f71b5b6e00f4e0083404b",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/DepthStencilCopyTests.cpp",
      "new_id": "e1ac73cbf1b879c201db93f3972d078ac4f259a3",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/DepthStencilCopyTests.cpp"
    }
  ]
}
