)]}'
{
  "commit": "51d6c63fe1602a9e812dc3610c10d7e6e31eeafd",
  "tree": "bde36d1bde410df2aec7d693d57f4184edb0f14e",
  "parents": [
    "d5cc102e7b9b6104a191be0c64017793432bd9dc"
  ],
  "author": {
    "name": "Martin Fick",
    "email": "mfick@nvidia.com",
    "time": "Tue Dec 17 17:30:17 2024 -0800"
  },
  "committer": {
    "name": "Martin Fick",
    "email": "mfick@nvidia.com",
    "time": "Fri Dec 20 15:22:10 2024 -0800"
  },
  "message": "Pack: separate an open/close accounting lock\n\nPreviously the open/close accounting code used whole Pack object\nsynchronization for locking. Unfortunately, there are other unrelated\nmethods which use whole Pack object synchronization also, mostly to\navoid concurrent loading of these independent indices, and they do not\ntouch or need to coordinate with the open/close accounting data. During\nheavy load when a new file appears after repacking the readFully()\nthreads could uselessly block on threads reading the reverse index.\nThese threads could have been reading from the Pack file instead of\nwaiting for the reverse index to be read. Use a new lock to make this\nlocking more fine grained to prevent the readFully() calling threads\nfrom getting blocked in beginWindowCache() while the reverse index or\nbitmaps are being loaded.\n\nChange-Id: I7ac9067ca10cd6d6be0ab25148d99da3ace7ba36\nSigned-off-by: Martin Fick \u003cmfick@nvidia.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8d2a86386ff39dc63efd6da11acc32d4549771d9",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java",
      "new_id": "1a7b5de1d75d5aa90d3a8396af8790227cf157ec",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java"
    }
  ]
}
