)]}'
{
  "commit": "dd586f2ebd0c42904e699f3634568a38c97d4da7",
  "tree": "9622cf03564998a33d69f2039382844d81384e30",
  "parents": [
    "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
  ],
  "author": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Wed Dec 16 15:15:58 2015 -0800"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Wed Dec 16 15:15:58 2015 -0800"
  },
  "message": "sem_timedwait with a null timeout doesn\u0027t mean \"forever\".\n\nIt actually means \"crash immediately\". Well, it\u0027s an error. And callers are\nmuch more likely to realize their mistake if we crash immediately rather\nthan return EINVAL. Historically, glibc has crashed and bionic -- before\nthe recent changes -- returned EINVAL, so this is a behavior change.\n\nChange-Id: I0c2373a6703b20b8a97aacc1e66368a5885e8c51\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "adbce07f10267fefde6e50d9044a3dd6b4e22139",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_cond.cpp",
      "new_id": "d36426c1655a93c6c30bf95ddfb643ce02e3c570",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_cond.cpp"
    },
    {
      "type": "modify",
      "old_id": "cad138ca30101ace7a403ad415292779042437dd",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_mutex.cpp",
      "new_id": "7d8e8a820bbb93335aae53638150e4af6e21a0d7",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_mutex.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1c48c8f23f3ca5efc91898aa1b64169c4433a22",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_rwlock.cpp",
      "new_id": "a0652953d926f679fb42335319af2f44646973fd",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_rwlock.cpp"
    },
    {
      "type": "modify",
      "old_id": "79b5d6372c72ed91122714cc7f6c46874c4e2407",
      "old_mode": 33188,
      "old_path": "libc/bionic/semaphore.cpp",
      "new_id": "b30c0b06e585830087a0c8cccbd271a3f07d1c38",
      "new_mode": 33188,
      "new_path": "libc/bionic/semaphore.cpp"
    },
    {
      "type": "modify",
      "old_id": "294c29a79ac4d14b497ee754d68e962bcdd0b5b7",
      "old_mode": 33188,
      "old_path": "libc/private/bionic_time_conversions.h",
      "new_id": "a8348437066a0dd9bac78a8a1d1589258d4f942a",
      "new_mode": 33188,
      "new_path": "libc/private/bionic_time_conversions.h"
    },
    {
      "type": "modify",
      "old_id": "b65bfb859f5d6ba012ab2c39a7122864d7224b50",
      "old_mode": 33188,
      "old_path": "tests/semaphore_test.cpp",
      "new_id": "84343dadd7e97cfe3157d9a2aaacc9312b43f7da",
      "new_mode": 33188,
      "new_path": "tests/semaphore_test.cpp"
    }
  ]
}
