)]}'
{
  "commit": "ca640fbffdb141aaa3bb89d89babc574be4476bf",
  "tree": "1bfe2b12ee31be0ccbe300642fe3909589937d8d",
  "parents": [
    "f37609610b40f115922b552fc521a5e75f735ace"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Tue Dec 23 16:36:19 2025"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Dec 23 20:13:42 2025"
  },
  "message": "Add async cancellation support to RTCStatsCollector\n\nThis reduces blocking call operations in the PC destructor down to a\nconsistent 2 and removes the synchronous Wait() operation in\nRTCStatsCollector from that path (it\u0027s still in Close()).\n\nThe implementation uses PendingTaskSafetyFlag and SafeTask to invalidate\npending tasks across the signaling and network threads. When\nCancelPendingRequest is called or the collector is destroyed, in-flight\ntasks are safely dropped rather than being synchronously waited upon.\n\nKey modifications:\n- Integrate ScopedTaskSafety within RTCStatsCollector for signaling\n  thread task management.\n- Require a network thread safety flag during RTCStatsCollector\n  initialization to ensure safe cross-thread operations.\n- Replace WaitForPendingRequest with CancelPendingRequest in the\n  PeerConnection destructor.\n- Wrap cross-thread PostTask calls in SafeTask to prevent callbacks\n  from executing after the collector has been cancelled or destroyed.\n\nBug: webrtc:42222804\nChange-Id: I48f30e839d1d9b4d58ad829e3e9d29962d742a7b\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/435440\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#46536}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e42bfaee03020fc8ea9baf5027f0d4ce59e0f740",
      "old_mode": 33188,
      "old_path": "pc/BUILD.gn",
      "new_id": "da203c5cf0b0ded8d84e67e35b8e5cc2a013a102",
      "new_mode": 33188,
      "new_path": "pc/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "315927db48aa576fd726bcd72802964fdc8d635e",
      "old_mode": 33188,
      "old_path": "pc/peer_connection.cc",
      "new_id": "b7520b6e62626f98bfc8d0a6cf9fe85cbeb82937",
      "new_mode": 33188,
      "new_path": "pc/peer_connection.cc"
    },
    {
      "type": "modify",
      "old_id": "8551c1e7fb09c55391c5dffdd5909760599daf00",
      "old_mode": 33188,
      "old_path": "pc/peer_connection.h",
      "new_id": "c2be9f105fae03877bd48cc2e87a24cff2183887",
      "new_mode": 33188,
      "new_path": "pc/peer_connection.h"
    },
    {
      "type": "modify",
      "old_id": "25b5ffe2dd0f3702c6c14ce3f54c0e2ccfaa8dea",
      "old_mode": 33188,
      "old_path": "pc/rtc_stats_collector.cc",
      "new_id": "2cd073132f3c29a38e04aa37f8f6f3d5909e564d",
      "new_mode": 33188,
      "new_path": "pc/rtc_stats_collector.cc"
    },
    {
      "type": "modify",
      "old_id": "8217c2c6ab692a2011cda438b08a4b809c3971f6",
      "old_mode": 33188,
      "old_path": "pc/rtc_stats_collector.h",
      "new_id": "75ec0b700a43a2cc2c5aefe526198e0a6393129c",
      "new_mode": 33188,
      "new_path": "pc/rtc_stats_collector.h"
    },
    {
      "type": "modify",
      "old_id": "a6615e381808fa44ca4c7e5e143f80624e94cb93",
      "old_mode": 33188,
      "old_path": "pc/rtc_stats_collector_unittest.cc",
      "new_id": "378c2e5d9e863e86990fcf128b396bd5ccdf1a03",
      "new_mode": 33188,
      "new_path": "pc/rtc_stats_collector_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7f1c015586023c86cb049fbb4570272b5094a3aa",
      "old_mode": 33188,
      "old_path": "pc/webrtc_session_description_factory.cc",
      "new_id": "072566030993a92022178e4ebcbb21a4132c94b2",
      "new_mode": 33188,
      "new_path": "pc/webrtc_session_description_factory.cc"
    }
  ]
}
