)]}'
{
  "commit": "34a118fd36e10702fcc4e8dcc53751de070dc315",
  "tree": "2eefa81650e723d878cdf4ea69025be5996107e4",
  "parents": [
    "c316cf36204e447856b44092a0e4616705e62393"
  ],
  "author": {
    "name": "Ralf W. Grosse-Kunstleve",
    "email": "rwgkio@gmail.com",
    "time": "Sun Feb 16 11:01:41 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Feb 16 11:01:41 2025 -0800"
  },
  "message": "Add `release_gil_before_calling_cpp_dtor` annotation for `class_` (#5522)\n\n* Backport of https://github.com/google/pybind11clif/pull/30088 (main PR) and https://github.com/google/pybind11clif/pull/30092 (minor fixes).\r\n\r\nNote for completeness:\r\n\r\nThese are identical to the current versions on the pybind11clif main branch (@ commit 4841661df5daf26ecdedaace54e64d0782e63f64):\r\n\r\n* test_class_release_gil_before_calling_cpp_dtor.cpp\r\n* test_class_release_gil_before_calling_cpp_dtor.py\r\n\r\n* Fix potential data race in test_class_release_gil_before_calling_cpp_dtor.cpp\r\n\r\nThe original intent was to let the singleton leak, but making that tread-safe is slightly more involved than this solution. It\u0027s totally fine in this case if the RegistryType destructor runs on process teardown.\r\n\r\nSee also: https://github.com/pybind/pybind11/pull/5522#issuecomment-2661068351\r\n\r\n---------\r\n\r\nCo-authored-by: Ralf W. Grosse-Kunstleve \u003crwgk@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1044db94d906ac5fcf6faab6ac7668187314598f",
      "old_mode": 33188,
      "old_path": "include/pybind11/attr.h",
      "new_id": "c863d8be5b8a8c80e0acd5724d575dedf90fd46f",
      "new_mode": 33188,
      "new_path": "include/pybind11/attr.h"
    },
    {
      "type": "modify",
      "old_id": "655bec39869e1e8d89251e2872d4f74a00975f26",
      "old_mode": 33188,
      "old_path": "include/pybind11/pybind11.h",
      "new_id": "8a1739e19336d242873b649107767c0f925a8cca",
      "new_mode": 33188,
      "new_path": "include/pybind11/pybind11.h"
    },
    {
      "type": "modify",
      "old_id": "315a5bad04907b16639adf79b80e9e05cd0aa33e",
      "old_mode": 33188,
      "old_path": "tests/CMakeLists.txt",
      "new_id": "da396f0984dfacda0f68147059b6d0e505005a00",
      "new_mode": 33188,
      "new_path": "tests/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a4869a846fb457bb74c828ebf42e886643d85241",
      "new_mode": 33188,
      "new_path": "tests/test_class_release_gil_before_calling_cpp_dtor.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0b1f246bb09192d53a2d6fc1917af69c784b3f81",
      "new_mode": 33188,
      "new_path": "tests/test_class_release_gil_before_calling_cpp_dtor.py"
    }
  ]
}
