)]}'
{
  "commit": "bbfecec2b0979e30be689f83de1155995719d9db",
  "tree": "ca7a672435a70cb5fcbb80929fdd910dee59b7aa",
  "parents": [
    "b7361bddd17021c404086f5dc362fd55ca400dc9"
  ],
  "author": {
    "name": "Geoff Lang",
    "email": "geofflang@chromium.org",
    "time": "Tue Sep 30 13:04:12 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 30 13:04:12 2025 -0700"
  },
  "message": "Reland \"Refactor AsyncTask into an object with helpers.\"\n\nAdded locking of AsyncTask\u0027s mutex while constructing the task. It is\npossible that the task is run and completes before PostWorkerTask\nreturns.\n\nThis is a reland of commit 773146ed837bac5363753246e4e2ea3f476f20b1\n\nOriginal change\u0027s description:\n\u003e Refactor AsyncTask into an object with helpers.\n\u003e\n\u003e AsyncTaskManager::PostTask now constructs a task object to wrap the\n\u003e running task and returns it. Allow for overriding the AsyncTask class\n\u003e with a template on PostTask.\n\u003e\n\u003e Update std::lock_guard to the more modern std::scoped_lock in\n\u003e AsyncTaskManager.\n\u003e\n\u003e Bug: 406520956\n\u003e\n\u003e Change-Id: Ie66e5b704db3772117885ce71ea0308b13c093b7\n\u003e Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/251114\n\u003e Reviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\n\u003e Reviewed-by: Loko Kung \u003clokokung@google.com\u003e\n\u003e Commit-Queue: Geoff Lang \u003cgeofflang@chromium.org\u003e\n\nBug: 406520956\nChange-Id: I0d2b14bd05a5d4d88a5aec20ac3ec5c4bb2e0555\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/263714\nCommit-Queue: Geoff Lang \u003cgeofflang@chromium.org\u003e\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a9fb8ef26efd6259e4f1579f53b4b299b1394c5e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/AsyncTask.cpp",
      "new_id": "2821bb385002c7eef746a8bfe74fade6a92b29ac",
      "new_mode": 33188,
      "new_path": "src/dawn/native/AsyncTask.cpp"
    },
    {
      "type": "modify",
      "old_id": "6457b92d620c8a2a88b997ce908df488e8f9aed7",
      "old_mode": 33188,
      "old_path": "src/dawn/native/AsyncTask.h",
      "new_id": "ef310e26bf1cb51af84d9e5bbf1607bde5f93880",
      "new_mode": 33188,
      "new_path": "src/dawn/native/AsyncTask.h"
    },
    {
      "type": "modify",
      "old_id": "ba506a1ca5e038fd240e21c3153818755caf5b2b",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CreatePipelineAsyncEvent.cpp",
      "new_id": "a67fa64741f3762a872ee7dbb767966b063c2ea2",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CreatePipelineAsyncEvent.cpp"
    },
    {
      "type": "modify",
      "old_id": "6db4c33795875d0a82a302145e75a575a3a2b382",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/AsyncTaskTests.cpp",
      "new_id": "65a1ace0f7d3febb81de73fdda4ac5a0cd03db65",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/AsyncTaskTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "225bfeda82bd9f43c26a8d6294dbcfbf4f1b098a",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/native/DeviceAsyncTaskTests.cpp",
      "new_id": "7211ac363fcce33aa5b82974aac43f5de5c71e63",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/native/DeviceAsyncTaskTests.cpp"
    }
  ]
}
