)]}'
{
  "commit": "b7f59176434925754f48c1459707e6be2dc20801",
  "tree": "16f7f5bbcf91e47d3a8d0608a1fcbbd153b010fc",
  "parents": [
    "3c0f5be7fc62dc070a3394002fd622b3dda12491"
  ],
  "author": {
    "name": "Neri Marschik",
    "email": "nerima@google.com",
    "time": "Mon Feb 02 13:50:39 2026 +0900"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Feb 02 01:33:11 2026 -0800"
  },
  "message": "Fix race condition when using validations\n\nTo allow a validation B on a target A to depend on A I previously\ndecoupled resolution of A from resolution of B. While testing this with\nfuchsia I ran into a race condition where target A would be written\nwhile B was not fully resolved. This caused the Ninja file to contain\ngarbled output for B.\n\nThis CL decouples resolution and writing so that a target A can resolve\nbut waits with writing until all its validations are resolved too.\n\nBug: 478798763\nChange-Id: Ica3d89f90b3753fde9edbbf8ad7d9fe2e1ca372a\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/20920\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "84eff84257ee61f7614593ef6f6c229baa0f3ca4",
      "old_mode": 33188,
      "old_path": "src/gn/builder.cc",
      "new_id": "51f9a024872edb9856a3af08dac971dc02c7e577",
      "new_mode": 33188,
      "new_path": "src/gn/builder.cc"
    },
    {
      "type": "modify",
      "old_id": "6578a891e654f9d05ddba71f871ba952e991b252",
      "old_mode": 33188,
      "old_path": "src/gn/builder.h",
      "new_id": "d6c42eb102a244f11e60013627fbae3347c51001",
      "new_mode": 33188,
      "new_path": "src/gn/builder.h"
    },
    {
      "type": "modify",
      "old_id": "f5af711fadcdcf2feb79865eb0bc6d96b79b96d1",
      "old_mode": 33188,
      "old_path": "src/gn/builder_record.cc",
      "new_id": "ff1a6136e8798d9b91189a4bd3fd2f9f82c5aa8d",
      "new_mode": 33188,
      "new_path": "src/gn/builder_record.cc"
    },
    {
      "type": "modify",
      "old_id": "06ff6c3b797f0b9c37fc1ede3651fe54a2beb0f3",
      "old_mode": 33188,
      "old_path": "src/gn/builder_record.h",
      "new_id": "b3b4aba06e1aba67da340c9fc97fe25ef6df7fa3",
      "new_mode": 33188,
      "new_path": "src/gn/builder_record.h"
    },
    {
      "type": "modify",
      "old_id": "da497c72abc5dc8672288420224e772ce1b9773d",
      "old_mode": 33188,
      "old_path": "src/gn/builder_unittest.cc",
      "new_id": "e53bf292942e3d09bbab2a7633ace8fcf6fa53a5",
      "new_mode": 33188,
      "new_path": "src/gn/builder_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "9cba6af55677056489a7af3f942d615c5d09348d",
      "old_mode": 33188,
      "old_path": "src/gn/target.cc",
      "new_id": "e3c95f3b4f1071a5f6178ec4487d03b7456f8683",
      "new_mode": 33188,
      "new_path": "src/gn/target.cc"
    }
  ]
}
