)]}'
{
  "commit": "ac2f090d3838c6ebfd20a6ce6006e94ac0768f9e",
  "tree": "284b69f8dcc4c3e270d5e4e3e561eef80b18743a",
  "parents": [
    "83c981ee477dd1ece3df6b27f6629e4c0ae5a956"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Sat Sep 20 23:01:21 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Sep 20 23:01:21 2025 -0700"
  },
  "message": "[dawn][wire] Implements timed WaitAny for Dawn wire client.\n\n- Implements timed WaitAny via conditional variables on the wire\n  client. Since the wire client now spontaneously receives future\n  completion tasks, we can use conditional variables to notice\n  changes in the state of the events, and fire the callbacks\n  via WaitAny.\n- Updates EventTests.cpp to test pretty much all possible callback\n  mode and wait mechanism combinations, both on and off the wire.\n- Updates other relevant tests w.r.t the wire not being able to\n  handle timed waits.\n- Note that this change required refcounting the client future\n  events since we use the presence of the event in the map as an\n  indicator to that both the event and it\u0027s corresponding\n  callback are completed. This means we can\u0027t remove the event\n  from the list until the callback is finished, hence some of the\n  changes.\n- This change also updates the way that the TrackedEvents on the\n  client handle a call to `Complete`. Since multiple threads\n  could potentially call `Complete`, we need to ensure that only\n  one thread will ever really complete the callback.\n\nBug: 441981783\nChange-Id: I45ad9507f558860ceb7284ee9487e880e6e868ac\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/260461\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f8e1b9e12272e29af8b9e8ff495e6006efd67a6c",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/DawnTest.cpp",
      "new_id": "183de0ce0564e1af27f8dc90ef5a86feb4d76106",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/DawnTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "5f0a631ef4869719c85bb0f50beaedd95a85661c",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/DawnTest.h",
      "new_id": "44a003a8b58542f3d5b170a260cebe6e26350d57",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/DawnTest.h"
    },
    {
      "type": "modify",
      "old_id": "b1f73b6f69568f2c7d7203659d2a54caf0650e09",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BasicTests.cpp",
      "new_id": "59bb53a83572d309cb5b78734e87c0101454f4bb",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BasicTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "e775b0ab8c44f50bf8c4bfca32213336678467c4",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/EventTests.cpp",
      "new_id": "7cbb8906bbc2283734fb103329de9c79fc732bce",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/EventTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "e1debff25c4ef1d60e27714d015091427465a47d",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Adapter.cpp",
      "new_id": "d0edc8e537627163aa894d1a9890445e66493dc2",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Adapter.cpp"
    },
    {
      "type": "modify",
      "old_id": "08adfa9d685da512f4a1e169515b260c7703199a",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Buffer.cpp",
      "new_id": "bdd6777fb4898e8481f58eddcb7191ae771acd3a",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Buffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8cc63fa4ccc03f0b88f87fafb6132d20866c237",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Client.cpp",
      "new_id": "6d7c7ad5b3f5ae73646cc50924d9bb8a1981ec4e",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Client.cpp"
    },
    {
      "type": "modify",
      "old_id": "4bea65b851b2a1d34fcf69805ca3920995045d43",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Device.cpp",
      "new_id": "e483089c1ae37f8e7db6acefa52f15b376d4b410",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "c4539e3f9c8d32a34aa54cdb1d8e0508ee8fe60d",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Device.h",
      "new_id": "c97ef1529d0a5564133f6f8a260b67e6591604f7",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Device.h"
    },
    {
      "type": "modify",
      "old_id": "3da58b7f0a0c31a411df6c28f232dfd2245610e7",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/EventManager.cpp",
      "new_id": "18caebd06d4bfd19aedce9526d8c63ccc81b7ada",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/EventManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "82003d4ca6984dca71a80cb2d1cb430abc0cb1dc",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/EventManager.h",
      "new_id": "983aa017eacf77f747d430bcd094da46e99e9688",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/EventManager.h"
    },
    {
      "type": "modify",
      "old_id": "33a2c58f1c088c6a2909ab490fe47823f6f8fcb9",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Instance.cpp",
      "new_id": "644c6ce9749dbab2a856371e5b653d765ec82ea3",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Instance.cpp"
    },
    {
      "type": "modify",
      "old_id": "2845059de29a2ad15a1610eaabcee6c3e1fe35a7",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Queue.cpp",
      "new_id": "a724441cfdf884c49fc0467c17fb2ef4e10814db",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Queue.cpp"
    },
    {
      "type": "modify",
      "old_id": "84931067f85db2f800eb0be72f766fb639ff5f92",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/ShaderModule.cpp",
      "new_id": "470cbfa5776693c7d279bd1608b7fde7ca997aeb",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/ShaderModule.cpp"
    }
  ]
}
