)]}'
{
  "commit": "7a87e90d03be02a532ebe18d6956db849d52e6c7",
  "tree": "4a211ef9ecdfdfa7cf072fc05819feaae2bf251f",
  "parents": [
    "8fe5fd57845d860171704945a6c892f5f4cf887e"
  ],
  "author": {
    "name": "Mohan Maiya",
    "email": "m.maiya@samsung.com",
    "time": "Sat Jul 16 11:39:08 2022 -0700"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Aug 17 20:22:05 2022 +0000"
  },
  "message": "An inactive but alive thread shouldn\u0027t prevent cleanup\n\n1. Acquire EGL global lock before thread cleanup and remove\n   all clean up related mutexes\n\n2. Mark contexts that are not current as invalid during terminate\n\n3. During thread exit, if there are other active threads, terminate\n   with TerminateReason::InternalCleanup. This gives an opportunity\n   for well behaved threads to cleanup up invalid objects.\n\nBug: angleproject:6723\nBug: angleproject:6798\nTest: EGLContextSharingTestNoFixture.InactiveThreadDoesntPreventCleanup*\nChange-Id: I418e5f8b486d3d309bd58c4cfb04b7dc1149ffc1\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768667\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\nReviewed-by: Roman Lavrov \u003cromanl@google.com\u003e\nCommit-Queue: mohan maiya \u003cm.maiya@samsung.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f2cec383ea3e341598675c542fad5dc8a5c0ee30",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Display.cpp",
      "new_id": "20ad5ad59dd92b991ef2654cbb13589f97804256",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Display.cpp"
    },
    {
      "type": "modify",
      "old_id": "773f08eaee8dadba77580741a76cc2de48a77c45",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Display.h",
      "new_id": "a089cfdb526c57a2d07624c2233891fa15c4b9df",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Display.h"
    },
    {
      "type": "modify",
      "old_id": "da0ae5ffa77ecc81b7f8d9a15d6fdb342dd43cce",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Thread.cpp",
      "new_id": "7f5f65fa3c7bd7a5b1c180fcd0b3abdeacbc7398",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Thread.cpp"
    },
    {
      "type": "modify",
      "old_id": "79676718f9e399a50eaa62e6412089f925b76f52",
      "old_mode": 33188,
      "old_path": "src/libGLESv2/global_state.cpp",
      "new_id": "6ae5fbb2d9301b1d956c92fe17bcd4c037bf68bf",
      "new_mode": 33188,
      "new_path": "src/libGLESv2/global_state.cpp"
    },
    {
      "type": "modify",
      "old_id": "c6d6d8a6f09bdb7a42790bf6a38208704342804f",
      "old_mode": 33188,
      "old_path": "src/tests/angle_end2end_tests_expectations.txt",
      "new_id": "41a5728411d6fef08f3312e39fa54f0d29f25cbc",
      "new_mode": 33188,
      "new_path": "src/tests/angle_end2end_tests_expectations.txt"
    },
    {
      "type": "modify",
      "old_id": "4be2f5bafe7ce81406f115337b8a2a89a55bfab5",
      "old_mode": 33188,
      "old_path": "src/tests/egl_tests/EGLContextSharingTest.cpp",
      "new_id": "102d2f25f38deb661f8b4b5f946523b892a8181c",
      "new_mode": 33188,
      "new_path": "src/tests/egl_tests/EGLContextSharingTest.cpp"
    }
  ]
}
