)]}'
{
  "commit": "44a5c913bd1e8126272c871970370aecf0a7fa62",
  "tree": "7f4024969d1644ff20dabb5babaf53efde3d1a9b",
  "parents": [
    "7753c8378754eba8a0119cca8563c00692b00797"
  ],
  "author": {
    "name": "John Plate",
    "email": "jplate@google.com",
    "time": "Thu Jun 17 09:29:29 2021 +0100"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 21 19:14:46 2021 +0000"
  },
  "message": "CL: Make CL front end and back end thread-safe\n\nAdd locking to all mutable variables of the CL objects in the\nfront end and pass-through back end to make them thread-safe.\nThis fixes a crash in a multi-threaded CTS test.\n\nBug: angleproject:6015\nChange-Id: I1d6471c851217639411c434c82acd32d14035291\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967468\nCommit-Queue: John Plate \u003cjplate@google.com\u003e\nReviewed-by: Cody Northrop \u003ccnorthrop@google.com\u003e\nReviewed-by: Jamie Madill \u003cjmadill@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "494da0943e915c34d26f06d85e1a630dc11a0498",
      "new_mode": 33188,
      "new_path": "src/common/Spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95432cfbcd5ed5da3db3ed583c5b63690ccd3aa8",
      "new_mode": 33188,
      "new_path": "src/common/SynchronizedValue.h"
    },
    {
      "type": "modify",
      "old_id": "f13bff955f699e64d83a46ffb2b29e19176c7a45",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLCommandQueue.cpp",
      "new_id": "cc30e8054cd281040a333712e6ee230b78acd36e",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLCommandQueue.cpp"
    },
    {
      "type": "modify",
      "old_id": "00eeced93bb82e4b86fcd5104552a79d5e41a1e0",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLCommandQueue.h",
      "new_id": "8a72994338a7168dffaed6d66a55bababbafa321",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLCommandQueue.h"
    },
    {
      "type": "modify",
      "old_id": "46a10968a6ad362d83a4aa6a2c0738cfeaf0a0c9",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLDevice.cpp",
      "new_id": "76981fca15c23d5297f716e2fe060f72d453ce68",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLDevice.cpp"
    },
    {
      "type": "modify",
      "old_id": "9a1b5a7ee5eb39a7c4d96118bd4217a6ed857437",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLDevice.h",
      "new_id": "140e0e3090595194c7729a36153159243fe536c4",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLDevice.h"
    },
    {
      "type": "modify",
      "old_id": "240dafa073ca54eacd30cb546c50979fa5b9be23",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLEvent.cpp",
      "new_id": "67393e8e5d09c973d96e18486058e2a5ac52aeb8",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLEvent.cpp"
    },
    {
      "type": "modify",
      "old_id": "40171ef3378d3625fd6c4b46126dcc5d2415f55e",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLEvent.h",
      "new_id": "f5789b30e71f509a07f0064678cedc4ecdf4762d",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLEvent.h"
    },
    {
      "type": "modify",
      "old_id": "3ef0cf0ffe10ef2d20fbd6e63a553a13584c9f20",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLMemory.cpp",
      "new_id": "56366cb9da658888be4d891d45dd00ef061db32a",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLMemory.cpp"
    },
    {
      "type": "modify",
      "old_id": "8ae58c2a802bea631c58b1925d610612122ea25b",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLMemory.h",
      "new_id": "990409b43f092b0d195cf0cf544edab2e8b82021",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLMemory.h"
    },
    {
      "type": "modify",
      "old_id": "6da41138c53d60ef6960b99567900ea38942fc2a",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLObject.cpp",
      "new_id": "1a9b70df580ea6f8b5caf952e6019bad130cf910",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLObject.cpp"
    },
    {
      "type": "modify",
      "old_id": "d7cc1fcd5d3f812110bbf24dfbeabcf18c39534f",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLObject.h",
      "new_id": "f69062ed6ecace3c89d92fefa4470a515e2857cc",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLObject.h"
    },
    {
      "type": "modify",
      "old_id": "20b968ee36c85468065067c0d19ef7892e3799a2",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLPlatform.cpp",
      "new_id": "7f98ccfa66f61d36426ec47a594afe966426e558",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLPlatform.cpp"
    },
    {
      "type": "modify",
      "old_id": "052fc84666f141dd416a82cdc6addf5d29bb71cf",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLProgram.cpp",
      "new_id": "b686d039954250365bd23e824b32070a2116adef",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLProgram.cpp"
    },
    {
      "type": "modify",
      "old_id": "5ef0c944b7ef3402133c36117ee77d77b4c0c98d",
      "old_mode": 33188,
      "old_path": "src/libANGLE/CLProgram.h",
      "new_id": "54d2049be905b2c4c03cd7b7405a0a70756578e6",
      "new_mode": 33188,
      "new_path": "src/libANGLE/CLProgram.h"
    },
    {
      "type": "modify",
      "old_id": "03e26081d964b94dbf036993cfbe854e7cbdebd0",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/cl/CLCommandQueueCL.cpp",
      "new_id": "3dee1fa7adcfb18e34c940595b28908148cb325e",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/cl/CLCommandQueueCL.cpp"
    },
    {
      "type": "modify",
      "old_id": "4e5a2d64294545634f0fa50584f1c54c9958864d",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/cl/CLContextCL.h",
      "new_id": "1d96cc17170021345be1a71715476f3bb89fd224",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/cl/CLContextCL.h"
    },
    {
      "type": "modify",
      "old_id": "25ab942b30aca4ac7e8239aea52cc1755578f237",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/cl/CLMemoryCL.cpp",
      "new_id": "148fe22dfc452ffd03ce672f5205426ec961b7e6",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/cl/CLMemoryCL.cpp"
    },
    {
      "type": "modify",
      "old_id": "2b80706ef25776b197227a444bb7a544bad4d6b3",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/cl/CLSamplerCL.cpp",
      "new_id": "24719360e78f6cc8cd868840cc17ffaa2c682298",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/cl/CLSamplerCL.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef091180dbc812d166d5afc816fa3c0c07b71f65",
      "old_mode": 33188,
      "old_path": "src/libGLESv2.gni",
      "new_id": "673d61290c895d9266e07d55ae1c9cb9299555eb",
      "new_mode": 33188,
      "new_path": "src/libGLESv2.gni"
    }
  ]
}
