)]}'
{
  "commit": "2a1bb4e64677b9abbc17173c79768ed494565047",
  "tree": "3e843fd4277f2bdc502511bd5e4ee539887c14f1",
  "parents": [
    "2d3e72336e76180fb00822386da4f14203d117ce"
  ],
  "author": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Mon Feb 11 12:34:03 2013 -0800"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Mon Feb 11 14:56:39 2013 -0800"
  },
  "message": "More pthreads cleanup.\n\nPOSIX says pthread_create returns EAGAIN, not ENOMEM.\n\nAlso pull pthread_attr_t functions into their own file.\n\nAlso pull pthread_setname_np into its own file.\n\nAlso remove unnecessary #includes from pthread_key.cpp.\n\nAlso account for those pthread keys used internally by bionic,\nso they don\u0027t count against the number of keys available to user\ncode. (They do with glibc, but glibc\u0027s limit is the much more\ngenerous 1024.)\n\nAlso factor out the common errno-restoring idiom to reduce gotos.\n\nBug: 6702535\nChange-Id: I555e66efffcf2c1b5a2873569e91489156efca42\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d21878ae87894c1b9f1490ef554e5620d004a6d8",
      "old_mode": 33188,
      "old_path": "libc/Android.mk",
      "new_id": "623bda240c993651ed7172e94a496c11ead154e2",
      "new_mode": 33188,
      "new_path": "libc/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "3a7b5b414955c9e6d8e4b4e636518cf1d7f90882",
      "old_mode": 33188,
      "old_path": "libc/bionic/dirent.cpp",
      "new_id": "74297d8213c945cf5755115db57d48413ef03b07",
      "new_mode": 33188,
      "new_path": "libc/bionic/dirent.cpp"
    },
    {
      "type": "modify",
      "old_id": "e1ace7dc2a8d3f06c4ce51005e66aa87a35e48b3",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread.c",
      "new_id": "bdf2b876626bc792b2237e745cdbac581b150a32",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "831a28e14ed81d7e973b9f7275f1336cbc17d584",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_attr.cpp"
    },
    {
      "type": "modify",
      "old_id": "24b420cf76208481f03b6a714ed648e196d09045",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_internal.h",
      "new_id": "63071d982c7c1a7b24aa3b834f3ff971d7a8c0b9",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_internal.h"
    },
    {
      "type": "modify",
      "old_id": "00dacba969f405b0bf4e72a3c4d52c3d648e6d35",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_key.cpp",
      "new_id": "b01f9bd4f9c0b025d26ac364896c5b3d3ff2c8c8",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_key.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "88b86ec1f49f7952c5bf91489dae2a06a7eae8e6",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_setname_np.cpp"
    },
    {
      "type": "modify",
      "old_id": "9c9dc3ed8390bfdfc917032a4dbbcbec0e4ee3af",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_sigmask.cpp",
      "new_id": "e4e1b2b98d6a5040775cf9027bbb66443d2ffbfd",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_sigmask.cpp"
    },
    {
      "type": "modify",
      "old_id": "646cc5239387fb339e5365196de74551b4a49873",
      "old_mode": 33188,
      "old_path": "libc/bionic/strerror_r.cpp",
      "new_id": "81120ecd30a2307ee4ed6c50cfc9b93102c2b467",
      "new_mode": 33188,
      "new_path": "libc/bionic/strerror_r.cpp"
    },
    {
      "type": "modify",
      "old_id": "3f24d1bd5f06880d1d30d4106ce10cdc6f222d59",
      "old_mode": 33188,
      "old_path": "libc/bionic/stubs.cpp",
      "new_id": "8ddc326e0d4723bd93bc98af670aa14b8c18044a",
      "new_mode": 33188,
      "new_path": "libc/bionic/stubs.cpp"
    },
    {
      "type": "modify",
      "old_id": "f4845e162b39385566794a53a3feaf58db80c56b",
      "old_mode": 33188,
      "old_path": "libc/bionic/sysconf.cpp",
      "new_id": "869faef77e9528baf83d7792923a1bbbdb791aef",
      "new_mode": 33188,
      "new_path": "libc/bionic/sysconf.cpp"
    },
    {
      "type": "modify",
      "old_id": "b97cc6c242de92ccc770b2b881ca381a92dd49ce",
      "old_mode": 33188,
      "old_path": "libc/bionic/tmpfile.cpp",
      "new_id": "8419ff5295eb4a3b5aa3704ac9f586d23f91204d",
      "new_mode": 33188,
      "new_path": "libc/bionic/tmpfile.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed6ab62705717eb1e32d435e720ed5b6c2ff749a",
      "new_mode": 33188,
      "new_path": "libc/private/ErrnoRestorer.h"
    },
    {
      "type": "modify",
      "old_id": "1c5e3f48a5b2456cf06f6179902e6f894b7e26d2",
      "old_mode": 33188,
      "old_path": "libc/private/ThreadLocalBuffer.h",
      "new_id": "703acd67a4b518234dd6dab91f5cee2cfbf14425",
      "new_mode": 33188,
      "new_path": "libc/private/ThreadLocalBuffer.h"
    },
    {
      "type": "modify",
      "old_id": "eb49fb7558577274ad057435657205611177eabc",
      "old_mode": 33188,
      "old_path": "libc/private/bionic_futex.h",
      "new_id": "6c7fdbe9ed10b0deec40c10cd8d926992a78192a",
      "new_mode": 33188,
      "new_path": "libc/private/bionic_futex.h"
    },
    {
      "type": "modify",
      "old_id": "edf878fb755a2ea0005f30cb34ea22330b731689",
      "old_mode": 33188,
      "old_path": "libc/private/bionic_tls.h",
      "new_id": "846eb8463f3ef22b48a5cba05a96aaab02a5ce96",
      "new_mode": 33188,
      "new_path": "libc/private/bionic_tls.h"
    },
    {
      "type": "modify",
      "old_id": "2cf45f30d77246f931305c3efc25837f2b3afda9",
      "old_mode": 33188,
      "old_path": "tests/pthread_test.cpp",
      "new_id": "12ebd1e8cf1745f11833c4195a5a9a34f0729f02",
      "new_mode": 33188,
      "new_path": "tests/pthread_test.cpp"
    }
  ]
}
