)]}'
{
  "commit": "a406dee71d184264bee3ac7d8765deff733c5826",
  "tree": "0e38645c7171e2f3a1d5941885e1c5332f3bd5d7",
  "parents": [
    "27d0e88f9491c00c039a930683685dbcd1e75122"
  ],
  "author": {
    "name": "James Robinson",
    "email": "jamesr@chromium.org",
    "time": "Wed Feb 10 09:54:08 2016 -0800"
  },
  "committer": {
    "name": "James Robinson",
    "email": "jamesr@chromium.org",
    "time": "Wed Feb 10 09:54:08 2016 -0800"
  },
  "message": "Enable threadsafe static initialization (aka \u0027magic statics\u0027)\n\nC++11 guarantees that initialization of function statics will be\nthreadsafe. We disabled this by passing -fno-threadsafe-statics because\nwe used to support building using visual studio and older versions\n(older than 2015) did not implement this functionality. Now we only use\nmodern toolchains which do support this and it\u0027s increasingly likely\nthat libraries we want to use and that other C++ developers will\nexpect rely on the standard behavior instead of our nonstandard init.\nUsing the toolchain\u0027s implementation of threadsafe initialization is\nalso very likely to be more efficient than our own handrolled\nthreadsafe initialization and less error prone.\n\nWith the specified behavior, many uses of base::Singleton for threadsafe\ninitialization can be replaced by function statics for a performance\nboost. There\u0027s also a very slight risk that code that was depending on\nracy initialization could break, but such code is at the very least\nsuspect if not outright broken already.\n\nEquivalent change in the Flutter engine is here: https://github.com/flutter/engine/pull/2375\n\nR\u003dviettrungluu@chromium.org\n\nReview URL: https://codereview.chromium.org/1683973002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "01addd9cdfd66705868ea83c7cf1d7cb5edeaa69",
      "old_mode": 33188,
      "old_path": "build/config/compiler/BUILD.gn",
      "new_id": "45c8e34c084a48396934b2482808c58f90af18fd",
      "new_mode": 33188,
      "new_path": "build/config/compiler/BUILD.gn"
    }
  ]
}
