)]}'
{
  "commit": "420b64d2fa291a02bc915f36c46776912f862a03",
  "tree": "dacf6a48262aa2193fc72accb846352c77bf9cdb",
  "parents": [
    "a781af7d5a1930d82d20c0cbc9d66fc8a42391e0"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Fri Jul 07 17:01:16 2017 -0400"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Mon Jul 10 16:42:15 2017 +0000"
  },
  "message": "Fix TLS for platforms without library constructors.\n\nSome platforms don\u0027t support constructors that get called when the\nshared library gets loaded. This results in the thread-local-storage\nkey to never be allocated. Instead we can check if it was allocated on\neach use. Also prevent creating new \u0027current\u0027 state if it already\nexists, and avoid pthreads undefined behavior.\n\nBug b/25629882\n\nChange-Id: I5e2486f88185150b976d88d0144e4d13a349eb79\nReviewed-on: https://swiftshader-review.googlesource.com/10451\nReviewed-by: Alexis Hétu \u003csugoi@google.com\u003e\nReviewed-by: Nicolas Capens \u003ccapn@google.com\u003e\nTested-by: Nicolas Capens \u003ccapn@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f6443e03c1b9b0d5ca25f2ce40f7544550fba3f",
      "old_mode": 33188,
      "old_path": "src/Common/Thread.hpp",
      "new_id": "f59a0d4f5764a0efa6ff5fc7d2f5637c579f44f5",
      "new_mode": 33188,
      "new_path": "src/Common/Thread.hpp"
    },
    {
      "type": "modify",
      "old_id": "1df31c58330b212b34b7435a71361789aadddd4f",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libEGL/main.cpp",
      "new_id": "7f024d0076773e7c326b2195db893cc041155023",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libEGL/main.cpp"
    }
  ]
}
