)]}'
{
  "commit": "3832df22d7c3093418f5180bfe652bf60a7e25de",
  "tree": "fd5603e48c710d8fc8a7c6b1ba8de18a973660f0",
  "parents": [
    "48c8a180b599c61cf09cb242cff3479b63dbe8c4"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Thu May 23 16:37:42 2019 +0100"
  },
  "committer": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Thu May 23 23:17:22 2019 +0000"
  },
  "message": "ComputeProgram: Don\u0027t hold on to the SpirvRoutine.\n\nSpirvRoutine holds reactor fields which must not outlive the scope of the reactor mutex.\n\nWhile the routine was not directly referenced outside of ComputeProgram::generate(), the destructor of the SpirvRoutine\u0027s rr::Variables was touching reactor, leading to data races.\n\nBug: b/133127573\nChange-Id: I854e079efdc0ef2d5b1ae67f014fe7148ad8f892\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31838\nPresubmit-Ready: Ben Clayton \u003cbclayton@google.com\u003e\nTested-by: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: Chris Forbes \u003cchrisforbes@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "012abbdf61aac3dc9ab29e85947f9f90c0c22ef4",
      "old_mode": 33188,
      "old_path": "src/Pipeline/ComputeProgram.cpp",
      "new_id": "253c4796b3c2ad98ce5f826465340cf1ae96a3fc",
      "new_mode": 33188,
      "new_path": "src/Pipeline/ComputeProgram.cpp"
    },
    {
      "type": "modify",
      "old_id": "402003e309068eddb12784acb9ef479f33a659b3",
      "old_mode": 33188,
      "old_path": "src/Pipeline/ComputeProgram.hpp",
      "new_id": "843812c30a8b650857f6f27f7ea7c2932dba01b8",
      "new_mode": 33188,
      "new_path": "src/Pipeline/ComputeProgram.hpp"
    }
  ]
}
