)]}'
{
  "commit": "a05691d5d88ea944c35c148755ed231c7a899a15",
  "tree": "d3658ea10a0f594be5f08de0381ec981a867fc8a",
  "parents": [
    "8a85012bc47ebb3e985839d1cb7c699d325ff279"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Jan 08 16:43:23 2023 -0800"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue May 16 21:05:47 2023 +0000"
  },
  "message": "Add an atomics library to crypto/internal.h\n\nrefcount.c is now a single, generic file that calls into C11-atomic-like\nAPIs. Behind the scenes, this selects one of C11 atomics, Windows\ninterlocked APIs, or unsynchronized reads/writes (in the no-threads\nbuild).\n\nThis frees us up to use atomics elsewhere in the library. For now, this\nonly binds sequentially consistent atomics, but we can add other memory\norders if needed. In particular, I believe up_ref only needs relaxed\natomics. Some of the later change I think only need acquire and release,\nbut I\u0027m not positive.\n\nBug: 570\nCq-Include-Trybots: luci.boringssl.try:linux_clang_rel_tsan\nChange-Id: Ifcd7357611bb7a8cd14b82c23ad080d1a2df1386\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/59848\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c427b20c507493cbf2105b7e366e50794e5df24d",
      "old_mode": 33188,
      "old_path": "crypto/CMakeLists.txt",
      "new_id": "ef47623cc646c56c2f3a857ebff4f3bf0f239d70",
      "new_mode": 33188,
      "new_path": "crypto/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "5c0473596ff04c4a1f4cc34a47505367b6e7a790",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "00f0582fecfc24572666b705806cc3cd4f7d17bc",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "rename",
      "old_id": "a1781c66ac4876e9a4ad046650450f08beafdf51",
      "old_mode": 33188,
      "old_path": "crypto/refcount_c11.c",
      "new_id": "74ebdd7c7717935a1c5939e0497f68c1efe544dd",
      "new_mode": 33188,
      "new_path": "crypto/refcount.c",
      "score": 66
    },
    {
      "type": "delete",
      "old_id": "096b4fa934e386bb1c38142b524ea2c44fbea04f",
      "old_mode": 33188,
      "old_path": "crypto/refcount_no_threads.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "7a2740bc266a8355578ea928dbd63e9a30e868d7",
      "old_mode": 33188,
      "old_path": "crypto/refcount_win.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "afa9f08b1a836df25397de803f62a8d8b5c25c3a",
      "old_mode": 33188,
      "old_path": "include/openssl/thread.h",
      "new_id": "695182b8b2fac3048f5c9bff679f0bfec5322e30",
      "new_mode": 33188,
      "new_path": "include/openssl/thread.h"
    }
  ]
}
