)]}'
{
  "commit": "c3b1910166bbcd211901700ead52abc3e47934ec",
  "tree": "804b0f77797309ea03b7ac9e5c22bf65b4d64cd3",
  "parents": [
    "e5ace236821d8810ec5f07f92299e3f4b8628d0e"
  ],
  "author": {
    "name": "Viet-Trung Luu",
    "email": "viettrungluu@chromium.org",
    "time": "Thu May 19 14:56:56 2016 -0700"
  },
  "committer": {
    "name": "Viet-Trung Luu",
    "email": "viettrungluu@chromium.org",
    "time": "Thu May 19 14:56:56 2016 -0700"
  },
  "message": "Make mojo::RunLoop just use pthreads.\n\nIn particular, it just uses pthreads TLS stuff directly along with\npthread_once(), which allows RunLoop::{SetUp,TearDown}() to be removed.\n\nThis will allow us to make the \"standalone\" Environment like the\n\"Chromium\"/base-using Environment, i.e., not require instantiation. This\nwill make things like ApplicationRunner more sane (since it currently\nhas to mix two things: instantiating the Environment -- which you need\nto do once per \"process\", i.e., Mojo application binary instantiation --\nand instantiating a RunLoop -- which you need to do once per thread).\n\n(Really, ApplicationRunner should just be a function, but that\u0027s another\nstory.)\n\nAlso note that I can\u0027t just use C++11 TLS (I tried:\n1c4b90d52b54811cfeeb7d72fd63ee3c33006866), since it\u0027s not supported on\niOS (which made Flutter sad). pthreads is OK though (including, AFAICT,\npthread_once()).\n\nR\u003dvardhan@google.com\n\nReview URL: https://codereview.chromium.org/1996703002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8224f1df40111fa5da96c332068f255e5d1fc08a",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/environment/lib/environment.cc",
      "new_id": "822497030bc6fa64166b65761ef89a3f883a3167",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/environment/lib/environment.cc"
    },
    {
      "type": "modify",
      "old_id": "d47d5c43fa01e14aeee0d332d79457276b09c48b",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/BUILD.gn",
      "new_id": "dd2c240f7cb45982f7c54fca90fa9942ae743d09",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/utility/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f68ad79a08917b9928eba8716baa494c57d6ed2a",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/lib/run_loop.cc",
      "new_id": "1fde95cfecdf1d829fa2f175e9cd5c86e934a104",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/utility/lib/run_loop.cc"
    },
    {
      "type": "delete",
      "old_id": "f5461eea556792cca98bf0f0a1af49631c81b535",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/lib/thread_local.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ea7343e5e69aca5d35a5c5d3604758a85b2200ac",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/lib/thread_local_posix.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "98841f7273a516ae8c6975ffd6f19af61f2077b2",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/lib/thread_local_win.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "42e59500224abbae0ee4ffbaa0badee2da9ff938",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/run_loop.h",
      "new_id": "71aa74e6141124b1dfa199d2fe5f83a96a7ceda0",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/utility/run_loop.h"
    },
    {
      "type": "modify",
      "old_id": "05d591a8e544b1a399f45609fd8bddce7018a452",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/utility/tests/run_loop_unittest.cc",
      "new_id": "fb41a41655dac5220a23516b18d5bd41e1488e24",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/utility/tests/run_loop_unittest.cc"
    }
  ]
}
