)]}'
{
  "commit": "d54f4a69527d43e8b9d758bb1aff57780e6e0578",
  "tree": "35fac0ae834727c588cd8ba093c904a5f0bdcd77",
  "parents": [
    "a3175e14efea4fbbcfb6a00238e94bf2c5544c54"
  ],
  "author": {
    "name": "Keir Mierle",
    "email": "keir@pigweed.infra.roller.google.com",
    "time": "Fri Oct 16 02:08:20 2026 -0700"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Oct 16 02:08:20 2026 -0700"
  },
  "message": "roll: third_party/pigweed pw_async2: Destroy ValueFuture values outside the provider lock\n\nValueFuture::Cancel() (and so its destructor) and move assignment\ndestroyed a held, unread value while holding the global, non-recursive\nValueProviderLock. A value whose destructor uses a value provider then\nself-deadlocks. For example, dropping an unread\nValueFuture\u003cResult\u003cReliableDatagramSocket\u003e\u003e that holds the last\nreference to a socket runs the socket\u0027s destructor, which can query its\nown providers.\n\nMove the value out under the lock and destroy it after releasing it.\n\nOriginal-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/502626\nOriginal-Revision: 13fe299b23f44db3ab688896b4ab6119b91da7ab\n\nRolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed\nRolled-Commits: b638de3c106c64..13fe299b23f44d\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8667797559526320193\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Id07a55c58c344711abc88658af868acddf0817da\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/examples/+/504666\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b638de3c106c6433f01571747a8a503a12eb1f00",
      "old_mode": 57344,
      "old_path": "third_party/pigweed",
      "new_id": "13fe299b23f44db3ab688896b4ab6119b91da7ab",
      "new_mode": 57344,
      "new_path": "third_party/pigweed"
    }
  ]
}
