)]}'
{
  "commit": "20cf5c5cbb314df3c0a4bb76953e62a8f1f3a362",
  "tree": "c58b5b7d420a37ebec520310ce8c0e84fd378bf7",
  "parents": [
    "7ccdeedd33479982664ccae3ad71920bd30c9257"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Mon Jul 01 11:13:27 2019 +0100"
  },
  "committer": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Fri Apr 17 14:18:52 2020 +0000"
  },
  "message": "LLVMReactor: Drop codegenMutex, now thread safe.\n\nLLVMReactor used to have a Big Fat Global Mutex over the entire\nlifetime of the Nucleus object. This was required as LLVMReactor\nused global variables for storing builder state.\n\nOver the past year, there has been significant code cleanup and\nglobal state has been reduced to a couple of globals that can now\nbe marked thread_local. With all state now being immutable global\nor thread local, we are now able to remove the mutex.\n\nASAN and TSAN checks for our unittests are clean.\n\nBug: b/153803432\nChange-Id: Ibe4019fb783f86e734387db431539e915369b488\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33484\nTested-by: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: Antonio Maiorano \u003camaiorano@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d70ecf0070d1a26a8b345027e0dc17803baf5257",
      "old_mode": 33188,
      "old_path": "src/Reactor/Coroutine.hpp",
      "new_id": "cd8763c8cf0d82517beb855ac26f46f92824d075",
      "new_mode": 33188,
      "new_path": "src/Reactor/Coroutine.hpp"
    },
    {
      "type": "modify",
      "old_id": "bbd91e387252855e8693210fdbf9b2cbc5379a6a",
      "old_mode": 33188,
      "old_path": "src/Reactor/LLVMJIT.cpp",
      "new_id": "68153a7b49fce81e3d6daa8864e5b9f8506008e5",
      "new_mode": 33188,
      "new_path": "src/Reactor/LLVMJIT.cpp"
    },
    {
      "type": "modify",
      "old_id": "6cce3f215644c222dd65af10f60920cb83c755d7",
      "old_mode": 33188,
      "old_path": "src/Reactor/LLVMReactor.cpp",
      "new_id": "48861e9446f64dae38d6824f7620b1d9d731bbf4",
      "new_mode": 33188,
      "new_path": "src/Reactor/LLVMReactor.cpp"
    },
    {
      "type": "modify",
      "old_id": "dff1a29763973c128104f93a5258f96a59fc08fe",
      "old_mode": 33188,
      "old_path": "src/Reactor/Reactor.cpp",
      "new_id": "2bf532487a87dd9bce35708a9178a1936a81029b",
      "new_mode": 33188,
      "new_path": "src/Reactor/Reactor.cpp"
    },
    {
      "type": "modify",
      "old_id": "488c0bee2a96c19bbbafe80089e67760959cfb6f",
      "old_mode": 33188,
      "old_path": "src/Reactor/Reactor.hpp",
      "new_id": "33e8b44ef3087e04a498e121c1ffbbb87c205e54",
      "new_mode": 33188,
      "new_path": "src/Reactor/Reactor.hpp"
    },
    {
      "type": "modify",
      "old_id": "d5aafa9c07b78b35cb8c6bfa29101e85cd256b05",
      "old_mode": 33188,
      "old_path": "src/Reactor/ReactorUnitTests.cpp",
      "new_id": "adb0cb4295596952a6df2725d3cb6bd0bb6c4099",
      "new_mode": 33188,
      "new_path": "src/Reactor/ReactorUnitTests.cpp"
    }
  ]
}
